12 writes to m_ChunkChars
System.Private.CoreLib (12)
src\runtime\src\libraries\System.Private.CoreLib\src\System\Text\StringBuilder.cs (11)
81m_ChunkChars = new char[DefaultCapacity]; 139m_ChunkChars = GC.AllocateUninitializedArray<char>(capacity); 165m_ChunkChars = GC.AllocateUninitializedArray<char>(capacity); 219m_ChunkChars = GC.AllocateUninitializedArray<char>(persistedCapacity); 286m_ChunkChars = newArray; 414source.m_ChunkChars = []; 465m_ChunkChars = newArray; 472m_ChunkChars = chunk.m_ChunkChars; 2663m_ChunkChars = chunkChars; 2687m_ChunkChars = from.m_ChunkChars; 2795m_ChunkChars = GC.AllocateUninitializedArray<char>(size);
System\Text\StringBuilder.NativeAot.cs (1)
74m_ChunkChars = chunkChars;
53 references to m_ChunkChars
System.Private.CoreLib (53)
src\runtime\src\libraries\System.Private.CoreLib\src\System\Text\StringBuilder.cs (52)
44/// This is the number of elements in <see cref="m_ChunkChars"/> that are in use, from the start of the buffer. 142value.AsSpan(startIndex, length).CopyTo(m_ChunkChars); 220persistedString.CopyTo(0, m_ChunkChars, 0, persistedString.Length); 240Debug.Assert(m_ChunkOffset + m_ChunkChars.Length >= m_ChunkOffset, "The length of the string is greater than int.MaxValue."); 248Debug.Assert(currentBlock.m_ChunkChars != null); 250Debug.Assert(currentBlock.m_ChunkLength <= currentBlock.m_ChunkChars.Length); 268get => m_ChunkChars.Length + m_ChunkOffset; 285Array.Copy(m_ChunkChars, newArray, m_ChunkLength); 331char[] sourceArray = chunk.m_ChunkChars; 457int capacityToPreserve = Math.Min(Capacity, Math.Max(Length * 6 / 5, m_ChunkChars.Length)); 459if (newLen > chunk.m_ChunkChars.Length) 464Array.Copy(chunk.m_ChunkChars, newArray, chunk.m_ChunkLength); 471Debug.Assert(newLen == chunk.m_ChunkChars.Length, "The new chunk should be larger or equal to the one it is replacing."); 472m_ChunkChars = chunk.m_ChunkChars; 496return chunk.m_ChunkChars[index - chunk.m_ChunkOffset]; 506chunk.m_ChunkChars[index - chunk.m_ChunkOffset] = value; 595return new ReadOnlyMemory<char>(_currentChunk.m_ChunkChars, 0, _currentChunk.m_ChunkLength); 687char[] chunkChars = m_ChunkChars; 717char[] chunkChars = m_ChunkChars; 734m_ChunkChars.AsSpan(0, restLength).Fill(value); 870int length = Math.Min(m_ChunkChars.Length - m_ChunkLength, count); 874Debug.Assert(m_ChunkLength == 0 && m_ChunkChars.Length >= count); 877value.CopyTo(startIndex, new Span<char>(m_ChunkChars, m_ChunkLength, length), length); 946new ReadOnlySpan<char>(chunk.m_ChunkChars, chunkStartIndex, chunkCount).CopyTo(destination.Slice(curDestIndex)); 1031char[] chars = m_ChunkChars; 1051m_ChunkChars[0] = value; 2062if (thisChunk.m_ChunkChars[thisChunkIndex] != sbChunk.m_ChunkChars[sbChunkIndex]) 2088ReadOnlySpan<char> chunk = new ReadOnlySpan<char>(sbChunk.m_ChunkChars, 0, chunk_length); 2159ReadOnlySpan<char> remainingChunk = chunk.m_ChunkChars.AsSpan(indexInChunk, Math.Min(chunk.m_ChunkLength - indexInChunk, count)); 2284Span<char> span = chunk.m_ChunkChars.AsSpan(curInChunk, endInChunk - curInChunk); 2356char[] chunkChars = m_ChunkChars; 2395int firstLength = m_ChunkChars.Length - m_ChunkLength; 2398new ReadOnlySpan<char>(ref value, firstLength).CopyTo(m_ChunkChars.AsSpan(m_ChunkLength)); 2399m_ChunkLength = m_ChunkChars.Length; 2408new ReadOnlySpan<char>(ref Unsafe.Add(ref value, firstLength), restLength).CopyTo(m_ChunkChars); 2476Debug.Assert(gapStart < sourceChunk.m_ChunkChars.Length, "gap starts at end of buffer. Should not happen"); 2482ReplaceInPlaceAtChunk(ref targetChunk!, ref targetIndexInChunk, ref sourceChunk.m_ChunkChars[gapStart], gapEnd - gapStart); 2524if (value[i] != chunk.m_ChunkChars[indexInChunk]) 2561new ReadOnlySpan<char>(ref value, lengthToCopy).CopyTo(chunk.m_ChunkChars.AsSpan(indexInChunk)); 2607get => new Span<char>(m_ChunkChars, m_ChunkLength, m_ChunkChars.Length - m_ChunkLength); 2687m_ChunkChars = from.m_ChunkChars; 2742if (!doNotMoveFollowingChars && chunk.m_ChunkLength <= DefaultCapacity * 2 && chunk.m_ChunkChars.Length - chunk.m_ChunkLength >= count) 2747chunk.m_ChunkChars[i + count] = chunk.m_ChunkChars[i]; 2761new ReadOnlySpan<char>(chunk.m_ChunkChars, 0, copyCount1).CopyTo(newChunk.m_ChunkChars); 2767new ReadOnlySpan<char>(chunk.m_ChunkChars, copyCount1, copyCount2).CopyTo(chunk.m_ChunkChars); 2878new ReadOnlySpan<char>(endChunk.m_ChunkChars, endIndexInChunk, copyCount).CopyTo(endChunk.m_ChunkChars.AsSpan(copyTargetIndexInChunk));
System\Text\StringBuilder.NativeAot.cs (1)
91return m_ChunkChars;