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
- Transform.cs
- HttpCacheParams.cs
- CachedCompositeFamily.cs
- XmlAttributes.cs
- ToolStripStatusLabel.cs
- ColumnTypeConverter.cs
- AccessDataSourceView.cs
- RadioButtonStandardAdapter.cs
- WebRequestModuleElement.cs
- DesignTimeTemplateParser.cs
- Collection.cs
- UIHelper.cs
- RadioButtonList.cs
- Authorization.cs
- ExpressionBindingCollection.cs
- TokenDescriptor.cs
- DataGridViewSortCompareEventArgs.cs
- ActivityBuilderHelper.cs
- TreeWalkHelper.cs
- ResizeGrip.cs
- JsonEncodingStreamWrapper.cs
- LinkedList.cs
- Blend.cs
- BindingContext.cs
- DataSvcMapFile.cs
- ValidationPropertyAttribute.cs
- EventLogReader.cs
- DesignBindingPropertyDescriptor.cs
- TemplatedWizardStep.cs
- Memoizer.cs
- AspNetHostingPermission.cs
- HttpStaticObjectsCollectionBase.cs
- DesignerTextBoxAdapter.cs
- AttributeExtensions.cs
- StandardMenuStripVerb.cs
- ZipIOLocalFileDataDescriptor.cs
- ServiceElement.cs
- RIPEMD160Managed.cs
- PointConverter.cs
- ErrorActivity.cs
- cookie.cs
- PropertyChangingEventArgs.cs
- XmlQueryContext.cs
- BuildProvider.cs
- DataGridViewCellCancelEventArgs.cs
- XmlTextReader.cs
- UnmanagedMarshal.cs
- BatchParser.cs
- KeyConstraint.cs
- WebEncodingValidator.cs
- CircleHotSpot.cs
- ValidatedControlConverter.cs
- ToolTip.cs
- EntityProxyTypeInfo.cs
- PolicyValidationException.cs
- StyleBamlRecordReader.cs
- SpecialTypeDataContract.cs
- CommonProperties.cs
- SystemIPGlobalProperties.cs
- TargetConverter.cs
- RecognizerInfo.cs
- ComAdminWrapper.cs
- SocketException.cs
- BaseTreeIterator.cs
- GeneralTransform3DGroup.cs
- XmlDocument.cs
- OdbcCommandBuilder.cs
- FastEncoderStatics.cs
- DataGridHeadersVisibilityToVisibilityConverter.cs
- HtmlImageAdapter.cs
- AssemblyResourceLoader.cs
- Quack.cs
- CodeAttributeArgument.cs
- ColumnMapProcessor.cs
- Utils.cs
- BooleanProjectedSlot.cs
- JulianCalendar.cs
- DataGridRowsPresenter.cs
- Tag.cs
- DetailsView.cs
- PointConverter.cs
- SizeValueSerializer.cs
- Knowncolors.cs
- ColumnMapTranslator.cs
- StickyNoteHelper.cs
- MDIWindowDialog.cs
- GridItem.cs
- MsmqHostedTransportConfiguration.cs
- SqlBuilder.cs
- ReturnEventArgs.cs
- NopReturnReader.cs
- WorkflowViewService.cs
- EventHandlingScope.cs
- TextRenderer.cs
- MailAddress.cs
- ResourceManager.cs
- VisualCollection.cs
- XmlTypeMapping.cs
- EventLogPermissionEntry.cs
- PageAdapter.cs