Cysharp/ZString

It looks like memory leak in Utf16ValueStringBuilder.Insert

martynovs opened this issue · 1 comments

Original buffer is not released before assigning new buffer

int remainLnegth = this.index - index;
buffer.AsSpan(index, remainLnegth).CopyTo(newBuffer.AsSpan(newBufferIndex));
buffer = newBuffer;
this.index = newBufferIndex + remainLnegth;
}

For example Grow releases buffer before assigning new one

buffer.CopyTo(newBuffer, 0);
if (buffer.Length != ThreadStaticBufferSize)
{
ArrayPool<char>.Shared.Return(buffer);
}
buffer = newBuffer;
}

thanks, fixed at 2.3.0.