System.Net.Security.SslStreamInternal.EnsureInternalBufferSize C# (CSharp) Метод

EnsureInternalBufferSize() приватный Метод

private EnsureInternalBufferSize ( int curOffset, int addSize ) : void
curOffset int
addSize int
Результат void
        private void EnsureInternalBufferSize(int curOffset, int addSize)
        {
            if (_internalBuffer == null || _internalBuffer.Length < addSize + curOffset)
            {
                bool wasPinnable = _internalBufferFromPinnableCache;
                byte[] saved = _internalBuffer;

                int newSize = addSize + curOffset;
                if (newSize <= PinnableReadBufferSize)
                {
                    if (PinnableBufferCacheEventSource.Log.IsEnabled())
                    {
                        PinnableBufferCacheEventSource.Log.DebugMessage2("In System.Net._SslStream.EnsureInternalBufferSize IS pinnable", this.GetHashCode(), newSize);
                    }

                    _internalBufferFromPinnableCache = true;
                    _internalBuffer = s_PinnableReadBufferCache.AllocateBuffer();
                }
                else
                {
                    if (PinnableBufferCacheEventSource.Log.IsEnabled())
                    {
                        PinnableBufferCacheEventSource.Log.DebugMessage2("In System.Net._SslStream.EnsureInternalBufferSize NOT pinnable", this.GetHashCode(), newSize);
                    }

                    _internalBufferFromPinnableCache = false;
                    _internalBuffer = new byte[newSize];
                }

                if (saved != null && curOffset != 0)
                {
                    Buffer.BlockCopy(saved, 0, _internalBuffer, 0, curOffset);
                }

                if (wasPinnable)
                {
                    s_PinnableReadBufferCache.FreeBuffer(saved);
                }
            }
            _internalOffset = curOffset;
            _internalBufferCount = curOffset + addSize;
        }