"Hold the phone"

Seperate procedures for freeing, "random" memory, and freeing PointerStacks are required. Because the PointerStack is a structure whose deallocation depends on structure members. Calling "free" on a PointerStack is a sure way to get yourself hurt!

After we get this API (pointer-stacks) solidified, a PointerStack should track "what's what" and make this new feature "deprecable". Of course, this will further the fact that multi-threaded is not doable. Should we have wrapped the external engine parts into the stack? I'm not really sure. Multi-threaded C isn't really my thing, one would imagine someone whose thing this is, would simply write a multi-threaded call arbitrator to handle this just like they do for everything else.

Either way, its source code, not stone code...

Stone code says so! And that's the bottom line!

Modified: src/pointer-stack.c
Modified: src/pointer-stack.h