[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Proper Stack Cleaning
- From: "Matthew Harmon" <matt@...>
- Date: Mon, 13 Sep 2004 08:29:20 -0500
I recently activated the runtime checks/tests and found that one of my bugs
was likely due to a stack overflow. I soon realized that there were some
operations I was performing that left values on the stack. For example,
loading libraries with lua_xxxlibopen(), etc. may push values onto the
stack, according to lua_gettop() anyway. In fact, by the time I got to do
any "real" work, the stack had 13 items on it.
In the examples and docs, I don't see mention of cleaning up the stack after
operations like these. Is it good practice to simply do a lua_settop(l, 0)
after a bunch of such operations?
Also, what is the proper procedure for enabling the runtime checks? I
manually included luauser_tests.h and added ltests.c to my project. That
seemed to work, but I'm not sure if that is the recommend method.