JasonXuDeveloper / Nino

Definite useful and high performance serialization library for any C# projects, including but not limited to .NET Core apps or Unity/Godot games.
https://nino.xgamedev.net
MIT License
468 stars 44 forks source link

疑似有内存泄漏 #96

Closed paris-bupt closed 1 year ago

paris-bupt commented 1 year ago

image

这里计算是否要扩容可能需要修改为:index <= TotalLength

否则如果不断调用隐式转换,TotalLength会不断增加:

image

JasonXuDeveloper commented 1 year ago

index是索引,是下标,所以是一直需要小于当前长度的。 下标所允许的最大值应该是总长度-1,所以这里用小于,而非小于等于是正确的

隐式转换的地方没看到有操作TotalLength

paris-bupt commented 1 year ago

image

image

paris-bupt commented 1 year ago

直觉上,EnsureCapacity函数参数的语义应该以“容量”而不是“索引”来处理会好一些

JasonXuDeveloper commented 1 year ago

嗯,主要是一般都是检查访问的index是否存在,所以检查的时候就是检查index是否小于totalLength了,隐式转换的地方我晚点用电脑处理一下

JasonXuDeveloper commented 1 year ago

应该是隐式转换的地方传入了长度去检查,实际上应该是长度-1来作为索引,这块我晚点整理一下。

JasonXuDeveloper commented 1 year ago

处理好了,特意增加了个用来以总量进行判断的函数