Хэш таблица. Утечки.
|
|
ZmeyGormonbl4 | Дата: Вторник, 20 Сентября 2011, 20:49:18 | Сообщение # 1 |
3 уровень
Группа: Пользователи
Сообщений: 53
Награды: 0
Репутация: 8
Блокировки:
| Если при помощи хэш таблицы в юнита записать данные, а потом убрать юнита при помощи Remove, создадут ли данные утечку?
|
|
|
|
FatalBlade | Дата: Вторник, 20 Сентября 2011, 20:56:39 | Сообщение # 2 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Да. Ты удалишь юниты, а не его ячейку в Хэше. Ведь когда ты сохраняешь данные "в юнита", ты сохраняешь их в сам хэш под ID твоего юнита. Удаляя юнита, ты только удаляешь сам обьект, но ссылка на него остаётся в хэше. Что бы отчистить всё под ID юнита в хэше, есть функция call FlushChildHashtable(udg_Hash, Unit). Unit - это твоя переменная в которую сохранён юнит.
|
|
|
|
ZmeyGormonbl4 | Дата: Вторник, 20 Сентября 2011, 20:57:50 | Сообщение # 3 |
3 уровень
Группа: Пользователи
Сообщений: 53
Награды: 0
Репутация: 8
Блокировки:
| Благодарю.
|
|
|
|
Diabfall | Дата: Вторник, 20 Сентября 2011, 20:59:40 | Сообщение # 4 |
Группа: Проверенные
Сообщений: 1231
Награды: 0
Блокировки:
| Так ты сохраняешь ссылку на юнита в хеше? Без отчистки она офк никуда не пропадёт и будет занимать место. Когда вар присвоит эту ссылку новому юниту могут быть косяки.
Нужно просто чистить ячейку, в которой записан юнит, после его удаления, и проблем не будет.
------------------ Опоздал.)
Сообщение отредактировал Diabfall - Вторник, 20 Сентября 2011, 21:00:16 |
|
|
|