question about unit group leak

afisakov

You can change this now in User CP.
Reaction score
37
I know that if u make unit groups and fail to destroy them it leaks, but what happens if u justadd units to a group
more precisely i found a line going
Trigger:
  • Unit Group - Add all units of (Units in (Playable map area) matching ((Level of Legion TD Tower for (Matching unit)) Equal to 1)) to Legion_TD
in a map i'm helping someone with
1) does this inherently leak because it orders "(Units in (Playable map area) matching" and creates a new unit group while running?
2) what happens when it tries to add a unit that is already in the group from the last time this trigger ran?
 

GFreak45

I didnt slap you, i high 5'd your face.
Reaction score
130
I just confirmed what xtian said, it does leak because the GetUnitsInRangeOfLocMatching function is called and that group is not destroyed, that is unless you: set bj_wantDestroy = true in a custom script beforehand, but that will create issues with other functions more than likely

EDIT: theres issues with the jass tags right now

EDIT2:
you can do something like this:


Custom Script: set bj_wantDestroy = true
Unit Group - Add units blah blah blah
Custom Script: set bj_wantDestroy = false

EDIT3:

Omg there is seriously something wrong with this parser, completely effing up jass and wc3 tags
 

afisakov

You can change this now in User CP.
Reaction score
37
Thank you for the help.
I replaced it with
Trigger:
  • Set Legion_TD = (Units in (Playable map area) matching ((Level of Legion TD Tower for (Matching unit)) Equal to 1))

and placed
Code:
Custom script:   call DestroyGroup (udg_Legion_TD)
in a later trigger to get rid of it.

Just to make sure, it is ok to make in one trigger and destroy in another as long as it is not made again in between, right?

Semi related question, does
Code:
Unit Group - Pick every unit in (Units of type Water Elemental (Level 1)) and do (Unit - Remove (Picked unit) from the game)
leak if there are no water elementals in the map? aka will any later lag result from making empty unit groups, because it seems a pain to clean up something that rarely gets to function
 

KaerfNomekop

Swim, fishies. Swim through the veil of steel.
Reaction score
612
Just to make sure, it is ok to make in one trigger and destroy in another as long as it is not made again in between, right?
So long as you can reference it after you're done using it, you won't be leaking anything. But be careful of multiple instances of the trigger running at the same time.

does
Code:
Unit Group - Pick every unit in (Units of type Water Elemental (Level 1)) and do (Unit - Remove (Picked unit) from the game)
leak if there are no water elementals in the map? aka will any later lag result from making empty unit groups, because it seems a pain to clean up something that rarely gets to function
Empty unit groups are still unit groups, and thus should leak like any other unit group.
 

afisakov

You can change this now in User CP.
Reaction score
37
Darn, more work
but thanks for the heads up

I guess I was hoping that with nothing in it, the group wouldn't take up a meaningful amount of memory, thus I wouldn;t have to work to get rid of it.
 

KaerfNomekop

Swim, fishies. Swim through the veil of steel.
Reaction score
612
You should clear anything that MIGHT leak. Just in case.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top