Double destroying

Light Alkmst

New Member
Reaction score
20
I've heard that destroying a variable that's already been destroyed, but not re-assigned is bad. How bad is it and what would it do?
 

Samael88

Evil always finds a way
Reaction score
181
It would probably crash the game:p

If you where told to hit something and it just turned out to be nothing there, you would probably get confused aswell:p
 

Cookiemaster

New Member
Reaction score
36
Just ran "Custom script: call RemoveLocation(udg_TEMP_POINT[0])" twice in a row.

Nothing happened.


You're just wasting some memory for executing the command, nothing more.
 

Exide

I am amazingly focused right now!
Reaction score
448
Better still (for some special effects, at least), use:

JASS:

call DestroyEffect(AddSpecialEffect("model", x, y ))


-Then you add and destroy the effect all in one call. :thup:
 

Kazuga

Let the game begin...
Reaction score
110
I'd say it will do nothing but maybe create more leaks. (still think 1 is better) :p
Removing a leak won't create a new leak...

No I don't think anything happens. When removing a variable you more like wash and clean it, if it already is washed and cleaned then it won't really make any difference. (Note, this is not a fact, I might be wrong.)
 

Exide

I am amazingly focused right now!
Reaction score
448
I'd assume it does in fact do something (because Grimoire notifies you of double frees), but that could just be to highlight the fact that "you're doing it wrong" :p If it does do anything, I have no clue what it is

How about we make a simple test?
Let's loop: call DestroyEffect(udg_Variable) some 10 000 times every 10 seconds or so, wait five minutes and see what happens? :p
 

Flare

Stops copies me!
Reaction score
662
10000 per 10sec only? Pff, you could easily get 100,000 executions, if not 200,000, per sec on a .01 timer (although things might start sizzling then =D)

EDIT: Hmmm, it definitely doesn't cause lag (well, at least for me) - running at 400,000 executions per seconds, my FPS dropped during the test period (10s, so about 4,000,000 executions of call RemoveLocation (l)), but it went straight back up afterwards.
 

Romek

Super Moderator
Reaction score
963
You could try it for different variable types.
I'm quite sure Lightning could cause problems.

Something similar was causing me problems, though I don't remember the cause. It might've been destroying a null lightning.
 

Exide

I am amazingly focused right now!
Reaction score
448
10000 per 10sec only? Pff, you could easily get 100,000 executions, if not 200,000, per sec on a .01 timer (although things might start sizzling then =D)

I figured 10 000 per 10 sec for a longer amount of time would give a more accurate result, but I guess it doesn't matter. :p

Conclusion: Do it right the first time, and you don't have to bother with these things. :p
 
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