Method
offline
Опыт:
152Активность: |
Утечки
Здравствуйте!
Вот копаясь в коде увидел следующее
Нативка просто вызывается. Но у меня возник вопрос - дает ли такое использование утечку?
Ведь нативка сама по себе возвращает Item (предмет):
Тоже самое можно и сказать про нативе-функцию CreateUnit:
Объясните что к чему начинающему Jass user'у |
02.03.2011, 23:04 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Enein
Silenced by ZlaYa1000
offline
Опыт:
43,681Активность: |
Конечно даёт. |
02.03.2011, 23:22 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Nekit1234007
offline
Опыт:
11,916Активность: |
Почему это? Тупо создаётся где-то предмет, как если бы его купили. Можно поднять/бросить/использовать/убить без последствий. Не утечка. При правильном использовании, конечно. |
02.03.2011, 23:27 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Enein
Silenced by ZlaYa1000
offline
Опыт:
43,681Активность: |
Например, юниты, расставленные в редакторе, создаются как-то так:
Зачем? Хэндл получил - забери. |
02.03.2011, 23:47 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Nekit1234007
offline
Опыт:
11,916Активность: |
Мне кажется это сделано для доп. действий с ними. Футман с 5% хп поставленный в редакторе и с активной способнстью укрыться за щитом и пара просто пизантов:
А в ситуациях без доп. действий близзы схалтурили и оставили как есть. Мне думается так. |
03.03.2011, 00:05 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Faion
Noblesse Oblige
offline
Опыт:
30,395Активность: |
Все что возвращает хендл\агент создает утечки если не обнулить.
|
03.03.2011, 00:42 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Method
offline
Опыт:
152Активность: |
Подведем итоги, господа.
Если ответ Faion'a действительно наполнен до краев правдой(в чем я уверен), то суть дальнейшего сущевствования этой темы в открытом виде в еденицах стремится к нулю.
Спасибо за внимание |
03.03.2011, 00:51 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
reALien
offline
Опыт:
29,211Активность: |
Странная у вас логика) Утечка была бы если бы мы что-то создавали временно и не удаляли или сохраняли хендл на что-то, что-то уничтожалось а хендл не стирался. Здесь же просто создается объект, у которого уже есть хендл, сидящий в памяти, не быть не может, функция нам его сообщает, но в память то не пишет же больше данных никаких, откуда утечке то взятся Если не так, то доказующие обратное тесты в студию) |
03.03.2011, 01:16 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
JaBeN_Симфер
offline
Опыт:
20,050Активность: |
созданный юнит - это не утечка, а return как минимум "закрывает" переменную, не создавая утечки. В примере Nekit1234007 утечка есть, т.к. переменная u не обнуляется или не возвращается через return.
Если вы не сохраните созданного юнита в переменную, то утечки не возникнет, но вы не получите ссылку на него, чтобы использовать его в других функциях, как видно на первом варианте. Если вы сохранили юнита в переменную, то после использования переменной, ее нужно обнулить, иначе именно тут и будет возникать утечка. |
03.03.2011, 02:57 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
Зачем хранить ссылку на предмет, если тебе нужно просто отдать его игроку?
|
06.03.2011, 21:31 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|