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
- KeyFrames.cs
- ScrollViewer.cs
- VisualTarget.cs
- DependencyPropertyConverter.cs
- SafeSecurityHandles.cs
- StatusBarPanelClickEvent.cs
- DocumentAutomationPeer.cs
- CustomWebEventKey.cs
- OrderablePartitioner.cs
- Dump.cs
- XmlHierarchyData.cs
- MatcherBuilder.cs
- CodeTypeReferenceExpression.cs
- Splitter.cs
- ItemCollectionEditor.cs
- SiteMapNodeCollection.cs
- Pen.cs
- MemberDomainMap.cs
- InputReferenceExpression.cs
- ConvertBinder.cs
- PopOutPanel.cs
- EnvironmentPermission.cs
- CodeRegionDirective.cs
- DurableOperationAttribute.cs
- XmlNodeChangedEventManager.cs
- ResourceDescriptionAttribute.cs
- XmlPreloadedResolver.cs
- SafePointer.cs
- DictionaryKeyPropertyAttribute.cs
- XmlSerializerVersionAttribute.cs
- Socket.cs
- PenLineJoinValidation.cs
- WindowsStatic.cs
- RegexInterpreter.cs
- FixedSOMLineRanges.cs
- ObjectDisposedException.cs
- BamlStream.cs
- DrawingDrawingContext.cs
- FigureParaClient.cs
- FunctionGenerator.cs
- TypefaceMetricsCache.cs
- MarshalDirectiveException.cs
- TextElement.cs
- SHA1.cs
- OleDbCommand.cs
- WebPartDescription.cs
- CollectionBuilder.cs
- _ChunkParse.cs
- FixedDocumentSequencePaginator.cs
- InstanceCreationEditor.cs
- IdnMapping.cs
- DbConnectionStringBuilder.cs
- BitmapEffectGroup.cs
- IndentTextWriter.cs
- HtmlTableRow.cs
- DoubleAnimation.cs
- CompilerState.cs
- WindowsHyperlink.cs
- DuplicateWaitObjectException.cs
- ConsoleKeyInfo.cs
- AppDomainManager.cs
- URIFormatException.cs
- LineMetrics.cs
- RemoveStoryboard.cs
- GroupItem.cs
- SetStateEventArgs.cs
- TextTreeRootTextBlock.cs
- SafeProcessHandle.cs
- LassoHelper.cs
- Int32AnimationBase.cs
- HostSecurityManager.cs
- ColorPalette.cs
- UnknownBitmapDecoder.cs
- SoapIncludeAttribute.cs
- PerspectiveCamera.cs
- SqlLiftIndependentRowExpressions.cs
- Hex.cs
- LinkClickEvent.cs
- TreeBuilderBamlTranslator.cs
- RuleSettingsCollection.cs
- LocalizationParserHooks.cs
- TreeNodeStyle.cs
- WindowsImpersonationContext.cs
- TextSegment.cs
- Common.cs
- WinCategoryAttribute.cs
- SemanticResultKey.cs
- MethodImplAttribute.cs
- BitmapImage.cs
- XmlDataImplementation.cs
- StartFileNameEditor.cs
- ServiceDescription.cs
- HtmlWindow.cs
- ManagementQuery.cs
- BinaryObjectWriter.cs
- DecimalAnimationBase.cs
- MessagePropertyDescriptionCollection.cs
- ManagedWndProcTracker.cs
- DockPatternIdentifiers.cs
- TranslateTransform3D.cs