Tool Leak Check v3

Im_On_56k

Hm...
Reaction score
116
*There will be a new version coming out soon with some additional features as well as detection for some leaks I missed.

can this check every possible leak?
I want to say yes, but right now I'm sure there are some leaks that are not being detected. The only way for me to fix that is for people to report any leaks not being detected that they know of.

What? No colors?
With colors, I can see better.
(and prettier)
There are colors in the new version coming out soon. No worries :)


Anyway, the only Player Group leak it actually detects is Convert Player To Player Group (ignores all others). It would also be nice if it could detect if the mapper tried to destroy (All players) and warn that it's a very bad idea to do that.
It should detect Covert Player to Player Group or at least the test I have done has detected it.

Code:
call DestroyForce(GetAllPlayers())
Code:
Player Group - Remove all players from (All players)
Is either of those the code you are talking about? I haven't used WE in quite a long time.

I also recommend that you get rid of the suggested fix thing.
A lot of people completely rely on this fix as the ultimate and only solution while they often don't know how to use it ("where is the Set MyLocation action?") or can sometimes be wrong due to a bug/improper use (in conditions for instance).
Instead you can just make it say, for example, "Unit Group Leak, click here for more info" where clicking would result in a window with information on Unit Group leaks and a couple of examples on how to remove them (and possibly a link to emjlr3's tutorial) showing up.
I have set the default option for showing suggested fixes to off. I have also made it display a warning when turning it on.

At the end of the scan I have also made it display a link to some Memory Leak tutorials.
 

0zaru

Learning vJASS ;)
Reaction score
60
Any assing of a force to all players and then cleaning(I think that cleaning) the force or destroying it will cause AllPlayers to dissapear.
 

FhelZone

Have a drink of a nice cold mellowberry juice!
Reaction score
103
Nice new interface, I should get my self one, maybe you should change the title to your own though.
 

SFilip

Gone but not forgotten
Reaction score
633
> It should detect Covert Player to Player Group or at least the test I have done has detected it.
Yes, but what I'm saying is that it doesn't detect any other except for that one. Try All Players Of Control for example.

> Is either of those the code you are talking about?
No, more like something like this:
Code:
Set MyPG = (All players)
Player Group - Pick every player in MyPG and do (Actions)
    Loop - Actions
        // anything here
Custom script:   call DestroyForce(udg_MyPG)

It also doesn't detect whether you actually destroyed/removed a variable, but I can't think of an accurate way of checking this (those Location variable not removed things in the previous version were really annoying).
However you may want to make it report something if the mapper reassigned a variable before destroying:
Code:
Set loc = (Center of (Playable map area))

// any number of actions here
Unit - Create 1 Footman for Player 1 (Red) at loc facing Default building facing degrees

// variable reassigned, but there is no Custom Script that removes it, display a warning
Set loc = (Random point in (Playable map area))
 
N

NuBy

Guest
Sounds very good for me since I am lazy, problem is the program doesn't open for me :eek:
 

tom_mai78101

The Helper Connoisseur / Ex-MineCraft Host
Staff member
Reaction score
1,633
To I'm_On_56K:

I can't run the program. How come everyone can run it, but I can't?
 

Sooda

Diversity enchants
Reaction score
318
> How come everyone can run it, but I can't?

What operation system are you using? Maybe you are missing some kind of a base environment, what is required by that program to run properly?
 

tom_mai78101

The Helper Connoisseur / Ex-MineCraft Host
Staff member
Reaction score
1,633
I'm running on Windows XP, SP2, Traditional Chinese.

And what environment should I required to have?
 

Romek

Super Moderator
Reaction score
963
I too, can't run the program.
I double click on Leakcheck.exe, and the error sound plays, but no error shows.

When i try to run in compatibility with Windows 2000 or any other Windows as a matter of fact, i get the error message:

'Component 'COMCTL32.OCX' or one of its dependencies not currently registered: a file is missing or invalid'

I've never used leak check, so I was just curious to see if it'd find anything in my map :D
 

tom_mai78101

The Helper Connoisseur / Ex-MineCraft Host
Staff member
Reaction score
1,633
To I'm On 56K:

Some questions:

1. While the executable file for non-VB users hasn't been out, should I have to use Leak Check v2?
2. Is Leak Check v3 for RoC only, TFT only, or both?
 

PurgeandFire

zxcvmkgdfg
Reaction score
509
It works fine for me. I tried it on Vista. Just extract the files and double click the application file.
 

Im_On_56k

Hm...
Reaction score
116
New version updated. Yes I know I am terrible at sticking to something :)

- New version includes newest leak definitions which means it will detect more leaks then previous versions.

- A variable removal detection which is in beta stage.

- Colors! You will see what I mean.

- Suggested fixes is turned off by default as it can provide incorrect information.

- There are also some additional features you may or may not notice but I will not list them as they are minor.

Go to my first post to download the updated version. Overwrite all files if you are extracting to the same location.

I am planning on releasing the source code still, I just haven't got around to commenting everything yet - but it is coming.
 

Insane!

Shh I didn't edit this, go away.
Reaction score
122
ERROR said:
Componet 'COMCTL32.OCX' or one of its dependencies not correctly registered: a file is missing or invalid

it pops that up when i try it
 

tom_mai78101

The Helper Connoisseur / Ex-MineCraft Host
Staff member
Reaction score
1,633
Bug:

Code:
Starter Death
    Events
        Unit - A unit owned by Player 1 (Red) Finishes construction
        Unit - A unit owned by Player 2 (Blue) Finishes construction
        Unit - A unit owned by Player 3 (Teal) Finishes construction
        Unit - A unit owned by Player 4 (Purple) Finishes construction
        Unit - A unit owned by Player 5 (Yellow) Finishes construction
        Unit - A unit owned by Player 6 (Orange) Finishes construction
        Unit - A unit owned by Player 7 (Green) Finishes construction
        Unit - A unit owned by Player 8 (Pink) Finishes construction
        Unit - A unit owned by Player 9 (Gray) Finishes construction
        Unit - A unit owned by Player 10 (Light Blue) Finishes construction
        Unit - A unit owned by Player 11 (Dark Green) Finishes construction
        Unit - A unit owned by Player 12 (Brown) Finishes construction
    Conditions
    Actions
        Set finishbuilding[(Player number of (Triggering player))] = True
        Set typeofBuilding[(Player number of (Triggering player))] = (Unit-type of (Constructed structure))
        Unit Group - Pick every unit in (Units owned by (Owner of (Triggering unit)) of type Wisp) and do (Unit - Remove (Picked unit) from the game)

Says "Subscript out of range"

I think it's the Unicode problem.


Picture:
91370940ku2.png
 

tom_mai78101

The Helper Connoisseur / Ex-MineCraft Host
Staff member
Reaction score
1,633
Bug again:

Code:
Setup Dialog
    Events
        Time - Elapsed game time is 0.10 seconds
    Conditions
    Actions
        Unit Group - Pick every unit in (Units in (Playable map area) matching ((Unit-type of (Matching unit)) Equal to Wisp)) and do (Unit - Remove (Picked unit) from the game)
        Game - Display to (All players) for 5.00 seconds the text: Game Mode is now be...
        Wait 1.00 seconds
        Dialog - Change the title of DIA to Game Modes
        Dialog - Create a dialog button for DIA labelled Original
        Set DIAbut[1] = (Last created dialog Button)
        Dialog - Create a dialog button for DIA labelled Incomes
        Set DIAbut[2] = (Last created dialog Button)
        Dialog - Show DIA for Player 1 (Red)

That's the original trigger. It somehow shows this one.

70840202hz5.png


I really don't know what is wrong with it.
 

Im_On_56k

Hm...
Reaction score
116
I am not sure what bug you are pointing out to me.

It will help if you show the text it is showing by moving the horizontal scroll bars to the left on both text boxes.

If you are trying to say it's not scanning the trigger you want it to - you have Always Copy on which means it will keep replacing the text in the input text box to the text on your clipboard. Turn that off. Otherwise you are going to have to explain to me more what bug you are trying to show me.
 

tom_mai78101

The Helper Connoisseur / Ex-MineCraft Host
Staff member
Reaction score
1,633
The bug is right there in front of you. See that Chinese characters?

Those =/= "Wisp".

I don't know why. It didn't copy it correctly. Those words doesn't look like "Wisp" at all.
 
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