Add assertions for : calls, avoid bad recursion

This commit is contained in:
Jesse van Herk 2014-07-01 11:38:07 -06:00
parent e10fa66e60
commit ed2b38952a

View File

@ -36,6 +36,7 @@ function GS.new(t) return t or {} end -- constructor - deprecated!
function GS.switch(to, ...) function GS.switch(to, ...)
assert(to, "Missing argument: Gamestate to switch to") assert(to, "Missing argument: Gamestate to switch to")
assert( to ~= GS, "Can't call switch with colon operator" )
local pre = stack[#stack] local pre = stack[#stack]
;(pre.leave or __NULL__)(pre) ;(pre.leave or __NULL__)(pre)
;(to.init or __NULL__)(to) ;(to.init or __NULL__)(to)
@ -46,6 +47,7 @@ end
function GS.push(to, ...) function GS.push(to, ...)
assert(to, "Missing argument: Gamestate to switch to") assert(to, "Missing argument: Gamestate to switch to")
assert( to ~= GS, "Can't call push with colon operator" )
local pre = stack[#stack] local pre = stack[#stack]
;(to.init or __NULL__)(to) ;(to.init or __NULL__)(to)
to.init = nil to.init = nil