[Вопрос] Утечка? :0
|
|
Ty3uK | Дата: Воскресенье, 10 Июня 2012, 18:06:29 | Сообщение # 1 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| недавно возник вопрос я создаю юнита, на нем эффект, сохраняю юнита в хэш, а после удаляю его эффект утекает?
|
|
|
|
Faion | Дата: Воскресенье, 10 Июня 2012, 18:19:29 | Сообщение # 2 |
10 уровень
Группа: Проверенные
Сообщений: 1894
Награды: 0
Репутация: 430
Блокировки:
| глупый вопрос Добавлено (10 Июнь 2012, 18:19:29) --------------------------------------------- А если серьезно, то нет.
О нас думают плохо лишь те, кто хуже нас, а те кто лучше нас... Им просто не до нас. My Project: Nindogatari MAL
|
|
|
|
Ty3uK | Дата: Воскресенье, 10 Июня 2012, 18:33:20 | Сообщение # 3 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| вопрос нормальный про систему не зналДобавлено (10 Июнь 2012, 18:33:20) --------------------------------------------- не утекает? :0
|
|
|
|
Faion | Дата: Воскресенье, 10 Июня 2012, 19:19:15 | Сообщение # 4 |
10 уровень
Группа: Проверенные
Сообщений: 1894
Награды: 0
Репутация: 430
Блокировки:
|
О нас думают плохо лишь те, кто хуже нас, а те кто лучше нас... Им просто не до нас. My Project: Nindogatari MAL
|
|
|
|
SirNikolas | Дата: Воскресенье, 10 Июня 2012, 19:40:02 | Сообщение # 5 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Утекает.Code scope EffectTest { private constant hashtable Hash = InitHashtable(); define private REMOVE = false;
callback onInit() { TimerStart(CreateTimer(), .01, true, \ lambda void() { unit u = CreateUnit(Player(0), 'hfoo', .0, .0, .0); timer t = CreateTimer(); #if REMOVE SaveAgentHandle(Hash, GetHandleId(t), 1, \ AddSpecialEffectTarget( \ "Abilities\\Spells\\Human\\Thunderclap\\ThunderclapCaster.mdl", \ u, "origin")); #else AddSpecialEffectTarget( \ "Abilities\\Spells\\Human\\Thunderclap\\ThunderclapCaster.mdl", \ u, "origin"); #endif SaveAgentHandle(Hash, GetHandleId(t), 0, u); TimerStart(t, .5, false, \ lambda void() { timer t = GetExpiredTimer(); RemoveUnit(LoadUnitHandle(Hash, GetHandleId(t), 0)); #if REMOVE DestroyEffect(LoadEffectHandle(Hash, GetHandleId(t), 1)); #endif DestroyTimer(t); FlushChildHashtable(Hash, GetHandleId(t)); t = null; } ); u = null; t = null; } ); } }
|
|
|
|
Faion | Дата: Воскресенье, 10 Июня 2012, 19:54:10 | Сообщение # 6 |
10 уровень
Группа: Проверенные
Сообщений: 1894
Награды: 0
Репутация: 430
Блокировки:
| Странно, на сколько помню давно подымалась тема, и пришли к выводу что все удаляется. SirNikolas, сделай плз тест с моей либой, что б наверняка убедиться, а то у меня старый cjass.
О нас думают плохо лишь те, кто хуже нас, а те кто лучше нас... Им просто не до нас. My Project: Nindogatari MAL
|
|
|
|
SirNikolas | Дата: Понедельник, 11 Июня 2012, 13:35:42 | Сообщение # 7 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| define private REMOVE = false define private REMOVE = true
|
|
|
|
Faion | Дата: Понедельник, 11 Июня 2012, 14:02:43 | Сообщение # 8 |
10 уровень
Группа: Проверенные
Сообщений: 1894
Награды: 0
Репутация: 430
Блокировки:
| thx;) Добавлено (11 Июнь 2012, 14:02:43) --------------------------------------------- Забавно, думал у меня будет в одном месте из за этого утечка, но обнаружилось что в коде у меня это учтено :\
О нас думают плохо лишь те, кто хуже нас, а те кто лучше нас... Им просто не до нас. My Project: Nindogatari MAL
|
|
|
|
SirNikolas | Дата: Понедельник, 11 Июня 2012, 18:41:37 | Сообщение # 9 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Faion, посмотри логи. Кажется, у тебя миллисекунды неправильно считаются (кратные десяти пишутся два раза подряд). Добавлено (11 Июнь 2012, 18:41:37) ---------------------------------------------
|
|
|
|