2987 Posts in 493 Topics - by 2195 Members - Latest Member: Warayurt

Warcraft III: MapsModelsSkinsIconsSpellsToolsTutorials
WC3 JASS: Code SnippetsJASS and vJASS Spells and SystemsJass Tutorials
Chat @Discord

Author Topic: Jasshelper 2014-03-10  (Read 6057 times)

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

  • Lurker - level 3
  • ***
  • Posts: 5
  • WC3 Models: 0
  • WC3 Tutorials: 0
  • WC3 Tools: 0
  • WC3 Maps: 0
  • WC3 Skins: 0
  • WC3 Icons: 0
  • WC3 Spells: 0
  • Reputation: 0
  • User
    • View Profile
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
« Created: April 09, 2016, 07:21:09 PM by moyack »
« Last Edit: June 08, 2017, 07:32:37 AM by moyack »
Code: jass  [Select]
  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 »

  • Site Owner
  • Administrator
  • Starter - level 4
  • *
  • Posts: 987
  • WC3 Models: 43
  • WC3 Tutorials: 13
  • WC3 Tools: 10
  • WC3 Maps: 11
  • WC3 Skins: 6
  • WC3 Icons: 2
  • WC3 Spells: 5
  • Reputation: 1153
  • Site Admin - I love fix things
    • View Profile
    • Blizzard Modding Information Center
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 :)

We can give you full hosting for your projects, a complete page!!

A custom altered melee map where you can play Naga and Demons. Check it out!!
Use Dropbox...

 

Blizzard Modding Information Center Starcraft II Modding Information Center Wacraft III Modding Information Center WC3JASS.com - The JASS Vault Chronicles of Darkness - A Warcraft III mod Jetcraft - A Starcraft II mod Troll Smash - A Warcraft III Arena
  Mod DB - Change the Game Power of Corruption - A Warcraft III altered melee map Chaos Realm - The world of Game modders and wc3 addicts Follow us on Facebook!!