Lua-垃圾收集,带有链接列表



我正在研究一个项目,我正在使用链接列表来跟踪某些对象。我将永久添加新对象并删除旧对象。不过,我似乎无法在此过程中摆脱内存泄漏。

function linkedlistClass:remove_destroyed()
local current = self.head
local before
for i=1,self.length do
    if current.value.destroyed then
        if current == self.head then
            self.head = self.head.next
            current.value = nil
        else 
            before.next = current.next
            current.value = nil
        end
        self.length = self.length - 1
    end
    before = current
    current = current.next
end
    self.tail.next = nil
end

因此,这似乎是代码的问题。列表的长度肯定正确计算,因为我多次检查了。

该列表由具有值和下一个属性的节点组成。值属性指向具有boolean属性.destroyed的对象,该对象确定是否应删除对象。

该方法称为列表后,应独立。头部只指向第二个元素,尾巴指向零,列表的长度如应有的。

以某种方式未收集被排除的节点,从而导致内存泄漏。我似乎无法摆脱它们。

预先感谢您的帮助。

好吧,我怀疑其他任何人都会有以下问题,但如果您猜我会发消息。

事实证明我正在使用库" HC"或" Hardon Collider",而我没有从场景中删除对象。

相关内容

  • 没有找到相关文章

最新更新