vJASS & Zinc Documentation
For the latest documentation about how it works vJASS and Zinc language layers for Warcraft III, please follow these links:
Jasshelper documentation - Zinc documentation - WC3 Optimizer documentation

* Random Tools

A new TESH Syntax Highlighter for Warcraft 3

Views: 2075
Replies: 2
Posted by BlizzMod
March 28, 2017, 10:53:33 PM

vrJASS

Views: 4052
Replies: 2
Posted by Ruke
June 02, 2016, 11:00:57 PM

Gmax 1.2

Views: 10694
Replies: 5
Posted by BlizzMod
April 27, 2012, 07:49:05 AM

Magos' War3 Model Editor

Views: 19393
Replies: 4
Posted by magos
August 28, 2011, 11:16:11 PM

NeoDex 2.7

Views: 533
Replies: 0
Posted by BlinkBoy
November 20, 2010, 09:02:36 PM

Jasshelper 2014-03-10

Glowackos · 7480

0 Members and 1 Guest are viewing this topic.

Rating

Average Score - 5 / 5

« Created: April 09, 2016, 07:12:10 PM by moyack »

Jasshelper 2014-03-10
on: November 27, 2014, 09:39:52 AM
Version: 2014-03-10
Keywords: Jasshelper, Glowackos, Bugfix
Operating System (OS):
  • Windows XP
  • Windows Vista
  • Windows 7
  • Windows 8
Tool Category: Jass Scripting, World Editor (WE) Add on or plugin
Rating: 5
Image/screenshot:
Warcraft III Tool resource
« Created: April 09, 2016, 07:21:09 PM by moyack »
« Last Edit: June 08, 2017, 07:32:37 AM by moyack »

Code: jass
  1. //=====================================
  2. //  Jasshelper 2014-03-10 Changelog
  3. //=====================================
  4. * Fixed a bug with deallocate on extended structs that used onDestroy.
  5. * Increased the stacksize in pjass.exe

This is a bugfix I posted a while ago, but it got deleted with the forum update, so posting here again.
Basically, for some reason there's two struct writers in the code, which get along pretty well for the most part, creating little more than a bit of bloatcode in the worst case. However, when using extended struct allocation (eg. struct MyStruct[32000]), the wrong struct writer occasionally* writes the deallocate function, failing to properly handle instances above the 8191, resulting in leaked, inde-struct-ible struct instances. Re-iterating: anything with an index above 8191 cannot be deallocated.

*It actually depends on the properties of the previous struct that was written, since some variable doesn't get updated. IIRC this was tied to whether or not the struct was using its own onDestroy() method or not. (I don't quite remember anymore; it was a while ago)


This update ensures only one of the writers (the proper one) writes all of the deallocation functions, addressing the bug described above, along with reducing some of the bloat code. There's still much more to be culled (whoever wrote the new struct writer should've properly removed the old one..), but this would require more time, and possibility introduce new bugs. The important part is that the bug is fixed, and that the remaining bloatcode isn't causing any grief.

Lucky you! This package contains a two-in-one bundle!
I've also increased the stacksize of the included pjass.exe. This will likely have no effect for most of you, but it will allow very big maps to get parsed, rather than throwing a stack overflow error when you try to click save in JNGP. The map I'm working on requires this; who knows maybe there are others out there who will find it useful?

The attached zip file contains all of the source code, so feel free to do a diff against the previous version if you have any questions, queries of quandaries. (I probably won't be able to help much as I don't really remember much about this anymore.)
« Last Edit: June 08, 2017, 07:32:37 AM by moyack »



Re: Jasshelper 2014-03-10
Reply #1 on: November 28, 2014, 07:55:47 AM

Awesome modification :D

In the upcoming version of JNGP, I'll include this modification into the system.

Thanks for reuploading it :)


 

Chaos Realm - The world of Game modders and wc3 addicts     WC3JASS.com - The JASS Vault   Jetcraft - A Starcraft II mod