Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / UnSafeCharBuffer.cs / 1305376 / UnSafeCharBuffer.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: UnSafeBuffer ** ** Purpose: A class to detect incorrect usage of UnSafeBuffer ** ** ===========================================================*/ namespace System { using System.Diagnostics; using System.Diagnostics.Contracts; unsafe internal struct UnSafeCharBuffer{ char * m_buffer; int m_totalSize; int m_length; [System.Security.SecurityCritical] // auto-generated public UnSafeCharBuffer( char *buffer, int bufferSize) { Contract.Assert( buffer != null, "buffer pointer can't be null." ); Contract.Assert( bufferSize >= 0, "buffer size can't be negative." ); m_buffer = buffer; m_totalSize = bufferSize; m_length = 0; } [System.Security.SecuritySafeCritical] // auto-generated public void AppendString(string stringToAppend) { if( String.IsNullOrEmpty( stringToAppend ) ) { return; } if ( (m_totalSize - m_length) < stringToAppend.Length ) { throw new IndexOutOfRangeException(); } fixed( char* pointerToString = stringToAppend ) { Buffer.memcpyimpl( (byte *) pointerToString, (byte*) (m_buffer + m_length), stringToAppend.Length * sizeof(char)); } m_length += stringToAppend.Length; Contract.Assert(m_length <= m_totalSize, "Buffer has been overflowed!"); } public int Length { get { return m_length; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Timer.cs
- AsyncDataRequest.cs
- GenericsInstances.cs
- Frame.cs
- EncryptedPackageFilter.cs
- DiagnosticTrace.cs
- ReferenceEqualityComparer.cs
- StorageSetMapping.cs
- DataGridViewBand.cs
- Normalization.cs
- ResumeStoryboard.cs
- SerialReceived.cs
- OperationFormatter.cs
- NumberFunctions.cs
- Classification.cs
- LocatorPart.cs
- VersionUtil.cs
- CompilerInfo.cs
- HwndSubclass.cs
- DbInsertCommandTree.cs
- Stream.cs
- Message.cs
- Int64Converter.cs
- DataGridLinkButton.cs
- SqlCacheDependencyDatabase.cs
- GridViewColumnCollection.cs
- SafeNativeMemoryHandle.cs
- RawStylusInput.cs
- MarkupExtensionParser.cs
- SqlUserDefinedAggregateAttribute.cs
- ConfigXmlCDataSection.cs
- TypeTypeConverter.cs
- CodeCastExpression.cs
- WebPartManagerInternals.cs
- ProcessModelSection.cs
- TreeNodeStyle.cs
- SecurityTokenProvider.cs
- HandleRef.cs
- XmlDataFileEditor.cs
- NodeFunctions.cs
- EncoderParameter.cs
- BitmapEffect.cs
- ObjectViewFactory.cs
- MemberRestriction.cs
- IQueryable.cs
- SpeakProgressEventArgs.cs
- TargetConverter.cs
- ZipIOLocalFileBlock.cs
- RadioButton.cs
- RSAOAEPKeyExchangeDeformatter.cs
- BitConverter.cs
- LocatorGroup.cs
- WindowsAuthenticationModule.cs
- UpdateTracker.cs
- SourceFileBuildProvider.cs
- NetworkInformationException.cs
- DesignerDeviceConfig.cs
- DataGridViewCellParsingEventArgs.cs
- XPathNavigator.cs
- ServiceDescription.cs
- SQLMembershipProvider.cs
- HtmlLink.cs
- ObjectStorage.cs
- processwaithandle.cs
- PlanCompilerUtil.cs
- DocumentOrderQuery.cs
- CustomActivityDesigner.cs
- EntityCommandDefinition.cs
- TextBreakpoint.cs
- SystemIPv4InterfaceProperties.cs
- DocumentApplicationJournalEntry.cs
- EDesignUtil.cs
- StrokeCollection2.cs
- MemberHolder.cs
- __Error.cs
- TerminatorSinks.cs
- SpellerHighlightLayer.cs
- ZipIOFileItemStream.cs
- RouteItem.cs
- Point3DValueSerializer.cs
- ItemsChangedEventArgs.cs
- RootAction.cs
- VectorKeyFrameCollection.cs
- CodeDirectoryCompiler.cs
- LinqDataSourceHelper.cs
- XomlCompilerHelpers.cs
- ContextMenu.cs
- SemaphoreSecurity.cs
- PaintEvent.cs
- XPathNode.cs
- DataQuery.cs
- EnumerableRowCollection.cs
- Metadata.cs
- SettingsAttributeDictionary.cs
- Int16Converter.cs
- CheckPair.cs
- OrderedDictionary.cs
- SmtpSection.cs
- WebConfigurationHost.cs
- TransformDescriptor.cs