
A stack can only be safely deallocated if either has been completely unwound or if it doesn't own any resources (note that is not enough to just destroy any stack allocated object). Context should either:
a) provide an interface to unwind the stack (by automatically trowing a special exception for example), or
After some thoughts: I can provide a function returning if the function has returned normaly (==finished) or was left by a jump. bool context::finished() const; I think that using an exception for stack unwinding is false because if can easly catched by try/catch(...) clause and then this code might not be give the exceution back/does arbitrary thing. I beleive it would be correct to use the unwind informations on the stack to do an stack unwinding (using DWARF-based unwinding). regards, Oliver -- GMX DSL Doppel-Flat ab 19,99 Euro/mtl.! Jetzt mit gratis Handy-Flat! http://portal.gmx.net/de/go/dsl