HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Parser stack overflow ??

04-11-2007, 09:43 AM#1
Fulla


For some odd reason this (very basic) spell, wont save.
It seems to cause others things to bug.

Collapse JASS:
constant function Nether_Ward_AbilId takes nothing returns integer
    return 'A0GB'
endfunction
    
constant function Nether_Ward_UnitId_1 takes nothing returns integer
    return 'o00O'
endfunction

constant function Nether_Ward_UnitId_2 takes nothing returns integer
    return 'o00K'
endfunction

constant function Nether_Ward_UnitId_3 takes nothing returns integer
    return 'o00L'
endfunction

constant function Nether_Ward_UnitId_4 takes nothing returns integer
    return 'o00M'
endfunction

constant function Nether_Ward_UnitId_5 takes nothing returns integer
    return 'o00N'
endfunction

constant function Nether_Ward_AbilId_Manaflare takes nothing returns integer
    return 'A0G9'
endfunction

constant function Nether_Ward_AbilId_Morbid takes nothing returns integer
    return 'A0GA'
endfunction


            //################################################################\\
            //                                                                \\
            //                        Spell Section                           \\
            //                                                                \\
            //################################################################\\


function Trig_Nether_Ward_Conditions takes nothing returns boolean
    return GetUnitTypeId(GetSummonedUnit()) == Nether_Ward_UnitId_1() or GetUnitTypeId(GetSummonedUnit()) == Nether_Ward_UnitId_2() or GetUnitTypeId(GetSummonedUnit()) == Nether_Ward_UnitId_3() or GetUnitTypeId(GetSummonedUnit()) == Nether_Ward_UnitId_4() or GetUnitTypeId(GetSummonedUnit()) == Nether_Ward_UnitId_5()
endfunction

function Trig_Nether_Ward_Actions takes nothing returns nothing
    local unit u = GetSummoningUnit()
    local unit d = GetSummonedUnit()
    local integer lvl = GetUnitAbilityLevel(u, Nether_Ward_AbilId())
    call SetUnitAbilityLevel(d, Nether_Ward_AbilId_Manaflare(), lvl)
    call SetUnitAbilityLevel(d, Nether_Ward_AbilId_Morbid(), lvl)
    call IssueImmediateOrderById(d, 852512)
    set u = null
    set d = null
endfunction

//===========================================================================
function InitTrig_Nether_Ward takes nothing returns nothing
    set gg_trg_Nether_Ward = CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ(gg_trg_Nether_Ward, EVENT_PLAYER_UNIT_SUMMON)
    call TriggerAddAction(gg_trg_Nether_Ward, function Trig_Nether_Ward_Actions)
    call TriggerAddCondition(gg_trg_Nether_Ward, Condition(function Trig_Nether_Ward_Conditions))
endfunction

Any ideas?
04-11-2007, 11:14 AM#2
Rising_Dusk
Try replacing:
Collapse JASS:
function Trig_Nether_Ward_Conditions takes nothing returns boolean
    return GetUnitTypeId(GetSummonedUnit()) == Nether_Ward_UnitId_1() or GetUnitTypeId(GetSummonedUnit()) == Nether_Ward_UnitId_2() or GetUnitTypeId(GetSummonedUnit()) == Nether_Ward_UnitId_3() or GetUnitTypeId(GetSummonedUnit()) == Nether_Ward_UnitId_4() or GetUnitTypeId(GetSummonedUnit()) == Nether_Ward_UnitId_5()
endfunction
With --
Collapse JASS:
function Trig_Nether_Ward_Conditions takes nothing returns boolean
    local integer id = GetUnitTypeId(GetSummonedUnit())
    return id == Nether_Ward_UnitId_1() or id  == Nether_Ward_UnitId_2() or id == Nether_Ward_UnitId_3() or id == Nether_Ward_UnitId_4() or id == Nether_Ward_UnitId_5()
endfunction

I'm not sure what it could be, but it might just be way too long of a line.
Everything else in that spell looks to be in order.

If it isn't what I just mentioned, are you sure it's this spell?
04-11-2007, 12:44 PM#3
Vexorian
This is a PJass bug, something to do with recursion maybe or null for a hash, I'll try letting pitzermike know, but we might need the original of your map.
04-11-2007, 01:21 PM#4
Fulla
I tried your way Dusk, same thing except it picks a dif trig to return same error msg.

Its fine if I disable the ability and simply do te ability in GUI.
Map is in pastebin.
04-11-2007, 10:42 PM#5
PitzerMike
I've extracted the script from your map in the pastebin and parsed it successfully with pjass.
No overflow whatsoever.

Attached is the debug pjass-executable that i used.
Does it still happen to you when you use that?

EDIT: or would i have to reenable some trigger for the bug to occur?

EDIT2: oh i found it.

EDIT3: I increased the stack size, your map compiles now. You can get the updated pjass file here: http://www.wc3campaigns.net/showthread.php?t=75239
Or you can wait for the next JassNewGen release.