Суть проблемы в шапке, вот сам тестовый скрипт:
По какой-то причине call DestroyGroup не работет :С, за пару секунд натекает 20 handl'ов соответственно:
Версия игры 1.27
Для измерения утечек использовал этот скрипт: xgm.guru/p/wc3/206488
Для измерения утечек использовал этот скрипт: xgm.guru/p/wc3/206488
Кто сталкивался? Помогите пожалуйста, добрые люди
Принятый ответ
Ваш код раскрывается в
function GetUnitsInRectMatching takes rect r, boolexpr filter returns group
local group g = CreateGroup()
call GroupEnumUnitsInRect(g, r, filter)
call DestroyBoolExpr(filter)
return g
endfunction
Вот эта группа и течёт.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.

WC3







Ред. Extremator
. . .
То уже не течёт... вообще никак (используя приложенный в топике инструмент).
Внутри какая-то ошибка сборки мусора или чего, что и ведёт к утечке хендлов в случайные моменты.
Ред. MpW
- используешь группу (объявляем локи создаем пикаем)
- записываешь временные локалки например число юнитов в группе set c = ... (циклом перечитываешь)
- удаляешь группу DestroyGroup(g), локи обнуляешь set g = null,
- возвращаешь
boolean: return c>0 или FirstOfGroup(g) == null (если g это аргумент функции, обнулять ниче не надо тогда. можно тогда отдельную обертку написать и boolean локалку завернуть)или integer: return c)
или как в этом случае вместо локалки используйте темповые глобалки