Сейчас 03:18:46 Суббота, 23 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Хэш таблица. Утечки.
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
 

  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz