Ralle
Owner
- Joined
- Oct 6, 2004
- Messages
- 10,212
Note: The JASS Checker has been reverted to the old version for now because of recently discovered instabilities.
I have just updated the JASS checker with a new feature I have been working on the past few months. It is super technical, so to sum it up, it is now more precise with reporting leaks than before.
The long story is this: The JASS checker performs a static analysis of the JASS in a map. What this means is that it does not run the JASS code but sort of looks at it. The limitation is that it might not know what value a variable has so in the case of an if-statement, it would have to assume that the 'then' statements are executed and then the 'else' statements and their results are combined.
However, in this latest version it makes an attempt to keep track of the value of things. This was super important to make the JASS checker more precise, especially because the blizzard.j file makes use of the global variable
I made a mess of this. The JASS checker is complex and pretty good. Use it!
I have just updated the JASS checker with a new feature I have been working on the past few months. It is super technical, so to sum it up, it is now more precise with reporting leaks than before.
The long story is this: The JASS checker performs a static analysis of the JASS in a map. What this means is that it does not run the JASS code but sort of looks at it. The limitation is that it might not know what value a variable has so in the case of an if-statement, it would have to assume that the 'then' statements are executed and then the 'else' statements and their results are combined.
However, in this latest version it makes an attempt to keep track of the value of things. This was super important to make the JASS checker more precise, especially because the blizzard.j file makes use of the global variable
bj_wantDestroyGroup
to determine whether the helper function must deallocate an allocation inside an if-statement. Because of the former way this was done, it had to assume that the allocation was never leaking and thus failed to report leaks in worry that they might be false positives.I made a mess of this. The JASS checker is complex and pretty good. Use it!
Last edited: