A question about leaks?

Aly

New Member
Reaction score
0
Do you need to destroy things that you use from variables? Or do the variables not leak?
 

afisakov

You can change this now in User CP.
Reaction score
37
Depends how you do it, and whether u reset the variable repeatedly.

for example:
If you set a variable one time and only employ it later (eg. red1=center of region 1) without changing its value, then nothing leaks.

However, if u repeatedly set a point variable=location of casting unit, then you have to destroy it each time because the points will leak. Same goes for unit group variables.

As far as I know integer or real variable don't leak so you don't have to worry about them.
 

Accname

2D-Graphics enthusiast
Reaction score
1,462
Do you need to destroy things that you use from variables? Or do the variables not leak?
That sentence is too vague to give you a proper answer.
When you create something it needs memory. If you do not destroy it it will still consume memory. If you dont need it anymore you should destroy it in order to free up the memory.
Creating something (possibly over and over) and never destroying it is called leaking memory. You use up more and more memory but you never free it up again until the game becomes unplayable or even crashes.
 

vypur85

Hibernate
Reaction score
803
In general, GUI global variables that leak:
Unit group
Player group (except All players)
Point
Special effects
Floating text

To remove them, in order:
call DestroyGroup (udg_YourUnitGroupName)
call DestroyForce (udg_YourPlayerGroupName)
call RemoveLocation (udg_YourPointName)
Special effect - Destroy (Last created special effect)
Disable permanence and set lifespan value


Just know these and you will be somewhat fine.
Other than the above (ie integer, boolean, real, timer), they are quite safe to be overwritten without first destroying the variables.

There are many other things that leak if not destroyed or created. But for beginners or general GUI users, it's always good if you clear the things mentioned above. Other leaky issues would involve something more complicated like event leaks etc.

Hashtables leak too. But that's another story...
 

Xialian

Member
Reaction score
8
Breaking into this thread, will creating a Unit Group and then removing all units from "Last Created Unit Group" leak, and if so, how do I destroy it? Same goes for other things not assigned to variables, but just "Last Created X"
 

Accname

2D-Graphics enthusiast
Reaction score
1,462
If you explicitly create a unit group then you have to destroy it. Clearing it will not suffice. An empty unit group is still a unit group that exists.
"Other things" is very vague. You need to be a little bit more specific to get a good answer. Many things in the wc3 engine are removed automatically and you dont need to do anything for that. For example units and items. These are removed after their corpses disappear.
Primitive data types like integers, reals, booleans, etc also dont need to be removed because they are primitive. They dont need any memory at all. Vypur named pretty much all data types that usually need to be removed manually to avoid leaks.
 

Xialian

Member
Reaction score
8
The other things and the 'exact' thing I meant, was how I can remove a "Last Created Unit Group", and if a target through, let's say a Unit variable leaks if not destroyed. I don't want a map to go all crazy when you're spamming these things.
 

Accname

2D-Graphics enthusiast
Reaction score
1,462
Variables never leak. The "content" of variables leaks. So a unit variable does not leak, and as I said, units do not leak either because they are removed when their corpses disappear.
Unit groups need to be destroyed, but you do not destroy the "last created unit group", you should just save the unit group in a temporary variable and destroy it that way.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top