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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
[Вопрос] Переменная типа group, проблема с утечкой.
ПозитронычДата: Суббота, 04 Февраля 2012, 19:10:24 | Сообщение # 1
2 уровень
Группа: Пользователи
Сообщений: 32
Награды: 0
Репутация: 0
Блокировки:
Приведу кусочек своего кода:
Code

local group g
...
set g = GetUnitsInRangeOfLocAll(35.00, pozS2)//(pozS2 - это точка, с ней проблем нет, поэтому часть кода,связанная с ней,не показана)
...
call DestroyGroup(g)
set g = null

Вроде я всё сделал правильно,однако же именно этот кусок программы почему-то вызывает утечку. Как её устранить ?
 

Ty3uKДата: Суббота, 04 Февраля 2012, 19:17:14 | Сообщение # 2
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Так, для начала, группу надо создать: local group g = CreateGroup() далее, дабы не юзать бж, сделаем проще: call GrousEnumUnitsInRange(g, GetLocationX(pozS2), GetLocationY(pozS2), 35, null) далее делаем нужные действия с ней, уничтожаем и обнуляем, как у вас и было. Ах да- лучше сразу юзать координаты, а не точку

Добавлено (04 Февраль 2012, 19:17:14)
---------------------------------------------
Прошу прощения за сплошной код- пишу с микроволновки


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

[DUОS]Дата: Суббота, 04 Февраля 2012, 19:33:25 | Сообщение # 3
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
Позитроныч,
У тебя эта точка что собственно содержит?


НУ И ЧТО ТЕПЕРЬ?


Кликайте на дракошку ;)
 

SirNikolasДата: Суббота, 04 Февраля 2012, 19:34:16 | Сообщение # 4
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Code
function GetUnitsInRectMatching takes rect r, boolexpr filter returns group  
     local group g = CreateGroup()  
     call GroupEnumUnitsInRect(g, r, filter)  
     call DestroyBoolExpr(filter)  
     return g  
endfunction
Здесь возвращается локальная переменная, что является утечкой. Единственный вариант избежать ее - не пользоваться данной функцией.


 

Ty3uKДата: Суббота, 04 Февраля 2012, 19:37:24 | Сообщение # 5
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Так он использует другую функцию. Или она внутри?

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SirNikolasДата: Суббота, 04 Февраля 2012, 19:41:19 | Сообщение # 6
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Такая штука со всеми GetUnits... и GetPlayers... (которые возвращают group и force).

 

Ty3uKДата: Суббота, 04 Февраля 2012, 19:43:29 | Сообщение # 7
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Хм... Понятно. Просто на микроволновке jngp или жасскрафт открыть не получается :(

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

ПозитронычДата: Суббота, 04 Февраля 2012, 19:58:46 | Сообщение # 8
2 уровень
Группа: Пользователи
Сообщений: 32
Награды: 0
Репутация: 0
Блокировки:
Угу, так как всё-таки мне быть?Получается, утечки никак не избежать?
 

Ty3uKДата: Суббота, 04 Февраля 2012, 20:00:41 | Сообщение # 9
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Смотри мой пост- я написал решение

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

ПозитронычДата: Суббота, 04 Февраля 2012, 20:03:35 | Сообщение # 10
2 уровень
Группа: Пользователи
Сообщений: 32
Награды: 0
Репутация: 0
Блокировки:
Вариант Ty3uKа попробовал, всё равно утечки идут.
 

Ty3uKДата: Суббота, 04 Февраля 2012, 20:05:03 | Сообщение # 11
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Им банально неоткуда взяться. Чем ты их детектишь?

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

ПозитронычДата: Суббота, 04 Февраля 2012, 20:16:30 | Сообщение # 12
2 уровень
Группа: Пользователи
Сообщений: 32
Награды: 0
Репутация: 0
Блокировки:
Счётчиком handle-ов. Может быть, дело в этом?

Добавлено (04 Февраль 2012, 20:14:17)
---------------------------------------------
У-упс, похоже,утечка откуда-то из другого места. Странно, я же всё остальное проверял, их не было...

Добавлено (04 Февраль 2012, 20:16:30)
---------------------------------------------
Нет, к сожалению, оттуда-же... :D :D

 

Ty3uKДата: Суббота, 04 Февраля 2012, 20:20:55 | Сообщение # 13
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Нет, она явно не оттуда. Или свой счетчик считает за утечку создание локальной группы (вполне вероятно, ибо количество хэндлов из-за нее увеличивается на один)

Добавлено (04 Февраль 2012, 20:20:55)
---------------------------------------------
А утечек тут нет. Факт buba


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

ПозитронычДата: Суббота, 04 Февраля 2012, 20:23:01 | Сообщение # 14
2 уровень
Группа: Пользователи
Сообщений: 32
Награды: 0
Репутация: 0
Блокировки:
Всё,всем спасибо за ответы, разобрался. В варианте Ty3uKа утечек нет.
 

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

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