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
- PlatformNotSupportedException.cs
- RegistryKey.cs
- NGCPageContentCollectionSerializerAsync.cs
- Region.cs
- XmlBaseReader.cs
- SimpleApplicationHost.cs
- WmlObjectListAdapter.cs
- Debug.cs
- _FtpControlStream.cs
- EtwTrace.cs
- CachedBitmap.cs
- PauseStoryboard.cs
- ScrollItemPattern.cs
- HttpGetProtocolReflector.cs
- PathNode.cs
- AdornerPresentationContext.cs
- TypeConverterAttribute.cs
- Style.cs
- DateTimeConverter2.cs
- Misc.cs
- DataGridViewEditingControlShowingEventArgs.cs
- XmlDocumentFragment.cs
- ArgumentDesigner.xaml.cs
- SpAudioStreamWrapper.cs
- ResXBuildProvider.cs
- LZCodec.cs
- ValueType.cs
- Duration.cs
- XslVisitor.cs
- TemplateManager.cs
- VisualStyleRenderer.cs
- WebConfigurationManager.cs
- XmlSchemaComplexContentExtension.cs
- ListBoxDesigner.cs
- WmlCommandAdapter.cs
- List.cs
- UriSection.cs
- CLSCompliantAttribute.cs
- DataBindingCollectionConverter.cs
- TrackingServices.cs
- CultureTableRecord.cs
- PartitionerStatic.cs
- CodeDelegateInvokeExpression.cs
- dataprotectionpermission.cs
- CollectionViewGroupRoot.cs
- TableAdapterManagerNameHandler.cs
- ScriptingWebServicesSectionGroup.cs
- ThicknessAnimationUsingKeyFrames.cs
- PageContentCollection.cs
- PersonalizationState.cs
- ComNativeDescriptor.cs
- ControlUtil.cs
- ScriptManager.cs
- OleDbReferenceCollection.cs
- GPRECT.cs
- EventLogPermissionEntry.cs
- MatrixValueSerializer.cs
- ObjectStateFormatter.cs
- RuntimeArgumentHandle.cs
- BigInt.cs
- InfoCardRSAPKCS1SignatureDeformatter.cs
- CalendarDay.cs
- WorkflowViewStateService.cs
- XPathAxisIterator.cs
- CreateParams.cs
- TraceHandlerErrorFormatter.cs
- SatelliteContractVersionAttribute.cs
- GZipStream.cs
- HostingEnvironmentWrapper.cs
- UpdatePanelControlTrigger.cs
- OpenTypeLayoutCache.cs
- ListViewDeleteEventArgs.cs
- ComponentEditorForm.cs
- AssociatedControlConverter.cs
- ImageSource.cs
- PeerApplication.cs
- BitmapEffectState.cs
- DesignerUtils.cs
- VerticalAlignConverter.cs
- SynchronizedDisposablePool.cs
- VirtualDirectoryMappingCollection.cs
- columnmapkeybuilder.cs
- IPGlobalProperties.cs
- SecurityDocument.cs
- ElementAtQueryOperator.cs
- SystemIPv4InterfaceProperties.cs
- ObjectListItemCollection.cs
- InvokeMethodActivityDesigner.cs
- Double.cs
- SiteMapNode.cs
- QueryConverter.cs
- DataGridViewMethods.cs
- TextTreeObjectNode.cs
- OdbcCommand.cs
- PopOutPanel.cs
- X509Certificate2Collection.cs
- VisualTransition.cs
- ModifierKeysConverter.cs
- SupportsEventValidationAttribute.cs
- Utility.cs