Показать сообщение отдельно
Старый 10.10.2010, 09:07   #6
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Ответ: Утечка памяти из-за оставшихся "внутренних" ссылок

Товарищи!
У меня есть класс, в нем список элементов этого класса.
Для удаления использую такую ф-ю:
function Remove(C:Class)
ListRemove(C,List)
C=null
GCCollect()
endFunction

все работло хорошо, но! для AI пришлось создать еще один класс, который мог содержать ссылку на объект класса Class. Как только вызывалась функция REmove() у того объекта, он выпадал из списка, на него терялась ссылка, но в том классе (ИИ) оставалась, поэтому GCCollect не удалял объект. Неужели придется при удалении объекта перелистывать все доступные ресурсы и обнулять в них ссылки на себя???????
(Offline)
 
Ответить с цитированием