【发布时间】:2010-01-28 21:46:54
【问题描述】:
在我正在进行的项目中,存在多个 TList 对象包含相同项对象的情况。
基本上,有一个包含所有项目对象的主列表,然后是仅包含所有项目子集的较小列表。物品是一样的,但不是副本。
问题出现在销毁过程中。主列表被释放,这释放了所有项目。主列表通过覆盖“通知”来处理释放项目,而子列表覆盖“通知”事件,以便不会再次释放项目 - 无论如何都会失败。
但是,当使用 FastMM4 时,内存泄漏日志将项目列为泄漏内存。
那么如何释放属于 2 个或更多列表的对象呢?
顺便说一句,这不是我的代码,我只是在做一些简单的维护。如果可以的话,我想避免创建每个对象的克隆以放入单独的列表中,但是嘿,男人必须做男人必须做的事情:o)
谢谢,
布尔吉
编辑
没关系,我一定是疯了。现在 FastMM4 不会将项目标记为泄漏......只有子列表,它们实际上是主列表的子类。 这里一定有我遗漏的东西。我将进行更多测试以更清楚地了解正在发生的事情。
感谢到目前为止的所有回复。
【问题讨论】:
标签: delphi list memory-management