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
- HttpPostProtocolReflector.cs
- Preprocessor.cs
- SiteMapNode.cs
- ProxyWebPartConnectionCollection.cs
- XmlSchemaSequence.cs
- ScriptResourceInfo.cs
- StringKeyFrameCollection.cs
- Vector3DAnimationBase.cs
- AssemblyResourceLoader.cs
- ScaleTransform3D.cs
- CompilationLock.cs
- Queue.cs
- DesignerTextViewAdapter.cs
- ToolStripComboBox.cs
- CompilerWrapper.cs
- DrawingDrawingContext.cs
- X509IssuerSerialKeyIdentifierClause.cs
- DataListItemCollection.cs
- HttpResponseMessageProperty.cs
- StreamInfo.cs
- wgx_render.cs
- Control.cs
- LogRestartAreaEnumerator.cs
- SqlProviderServices.cs
- TextAutomationPeer.cs
- ApplicationSecurityManager.cs
- XmlTextEncoder.cs
- XmlMembersMapping.cs
- TimeManager.cs
- BoolExpr.cs
- DispatcherEventArgs.cs
- SelectorAutomationPeer.cs
- WebExceptionStatus.cs
- Bidi.cs
- FormCollection.cs
- Switch.cs
- AtlasWeb.Designer.cs
- SiteOfOriginContainer.cs
- TableLayoutSettings.cs
- DataTableReader.cs
- RelatedPropertyManager.cs
- ObjectListTitleAttribute.cs
- CuspData.cs
- SystemIPv4InterfaceProperties.cs
- InputProviderSite.cs
- _UncName.cs
- LineGeometry.cs
- MembershipUser.cs
- ResXBuildProvider.cs
- ErrorStyle.cs
- WebPageTraceListener.cs
- DocumentViewerHelper.cs
- TableCellCollection.cs
- DataServiceQueryProvider.cs
- AtlasWeb.Designer.cs
- SchemeSettingElement.cs
- LineSegment.cs
- GeneralTransform3DGroup.cs
- NativeMethods.cs
- FunctionParameter.cs
- WebPartsPersonalization.cs
- TypeLoadException.cs
- DbMetaDataCollectionNames.cs
- TiffBitmapDecoder.cs
- WebEventCodes.cs
- DataGrid.cs
- DataServiceHostFactory.cs
- ObfuscationAttribute.cs
- SplitterDesigner.cs
- FixedSOMTable.cs
- ColorAnimationUsingKeyFrames.cs
- ComponentResourceManager.cs
- ObjectListTitleAttribute.cs
- XmlSerializationReader.cs
- ImageBrush.cs
- UrlMappingsSection.cs
- DataGridViewCell.cs
- HwndProxyElementProvider.cs
- CriticalExceptions.cs
- CompositeFontInfo.cs
- XamlPathDataSerializer.cs
- TimeSpan.cs
- AuthenticationServiceManager.cs
- RowUpdatingEventArgs.cs
- SecUtil.cs
- TypeSystem.cs
- HtmlInputButton.cs
- MsmqMessageProperty.cs
- PeerResolverSettings.cs
- RoutedEventConverter.cs
- EventLogEntryCollection.cs
- UnsafeNativeMethods.cs
- NamedElement.cs
- MissingManifestResourceException.cs
- ListChangedEventArgs.cs
- SmiXetterAccessMap.cs
- ProviderUtil.cs
- BaseValidatorDesigner.cs
- MissingSatelliteAssemblyException.cs
- XPathException.cs