Pchp.Core.PhpString.AddChunk C# (CSharp) Method

AddChunk() private method

private AddChunk ( object newchunk ) : void
newchunk object
return void
        void AddChunk(object newchunk)
        {
            AssertChunkObject(newchunk);

            // TODO: EnsureWritable

            var chunks = _chunks;
            if (chunks != null)
            {
                Debug.Assert(!this.IsEmpty);

                // TODO: Compact byte[] chunks together

                if (IsArrayOfChunks)
                {
                    Debug.Assert(chunks.GetType() == typeof(object[]));
                    AddChunkToArray((object[])chunks, newchunk);
                }
                else
                {
                    AssertChunkObject(chunks);
                    _chunks = new object[2] { chunks, newchunk };
                    _chunksCount = 2;
                    _flags |= Flags.IsArrayOfChunks;
                }
            }
            else
            {
                _chunks = newchunk;
                _flags |= Flags.IsNonEmpty;
            }

            //
            _string = null;
            _length = -1;
        }