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
- InvalidOperationException.cs
- DbProviderFactories.cs
- XmlCustomFormatter.cs
- Console.cs
- MsmqHostedTransportConfiguration.cs
- XslCompiledTransform.cs
- AssemblyResolver.cs
- CodeArrayIndexerExpression.cs
- HtmlInputControl.cs
- XmlSchemaFacet.cs
- ScaleTransform.cs
- Visual3DCollection.cs
- CodeArgumentReferenceExpression.cs
- XPathDocument.cs
- ObjectResult.cs
- LookupNode.cs
- FixedSOMPageElement.cs
- SecUtil.cs
- AbstractSvcMapFileLoader.cs
- CompositeScriptReference.cs
- CustomAttributeSerializer.cs
- DataServiceRequest.cs
- ApplicationGesture.cs
- SettingsAttributeDictionary.cs
- CorrelationScope.cs
- ListViewInsertionMark.cs
- LambdaCompiler.Statements.cs
- Highlights.cs
- SequentialUshortCollection.cs
- EncryptedData.cs
- GridToolTip.cs
- Error.cs
- ContentWrapperAttribute.cs
- EventMappingSettings.cs
- DataGridCell.cs
- XmlRawWriter.cs
- Context.cs
- XmlExpressionDumper.cs
- DataGridRowHeaderAutomationPeer.cs
- HttpRequest.cs
- XmlUnspecifiedAttribute.cs
- Bitmap.cs
- EqualityArray.cs
- WebPartUtil.cs
- FileEnumerator.cs
- DBCommandBuilder.cs
- ClientTarget.cs
- SoapCodeExporter.cs
- RequiredFieldValidator.cs
- SizeConverter.cs
- RankException.cs
- InkCanvasSelectionAdorner.cs
- ListBindingConverter.cs
- CompletedAsyncResult.cs
- XhtmlConformanceSection.cs
- TreePrinter.cs
- ListBoxItemAutomationPeer.cs
- DataControlHelper.cs
- FlowDocumentReaderAutomationPeer.cs
- HttpCacheParams.cs
- NotFiniteNumberException.cs
- HelpKeywordAttribute.cs
- CultureInfo.cs
- ClickablePoint.cs
- ProviderConnectionPoint.cs
- WsdlBuildProvider.cs
- _Connection.cs
- DataViewManager.cs
- XmlSerializerFactory.cs
- InfiniteTimeSpanConverter.cs
- DependencyObjectPropertyDescriptor.cs
- WindowsTreeView.cs
- SpecialFolderEnumConverter.cs
- Char.cs
- FontUnit.cs
- PropertyInformation.cs
- HMACSHA256.cs
- _NestedMultipleAsyncResult.cs
- XamlGridLengthSerializer.cs
- Region.cs
- ClientRuntimeConfig.cs
- MouseEvent.cs
- ColorBlend.cs
- ProfileServiceManager.cs
- XmlCharCheckingWriter.cs
- Currency.cs
- TypedLocationWrapper.cs
- HttpFileCollection.cs
- Sentence.cs
- SystemGatewayIPAddressInformation.cs
- Event.cs
- Thumb.cs
- SponsorHelper.cs
- WebBrowser.cs
- SchemaType.cs
- GenericTypeParameterConverter.cs
- input.cs
- MinimizableAttributeTypeConverter.cs
- TranslateTransform3D.cs
- ScaleTransform3D.cs