lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Seems fairly straightforward: you're pushing more things on to the stack than it has room for. If you call lua_checkstack first, it will enlarge the stack to make the room.

On Mon, Jun 13, 2011 at 1:53 PM, Gabriel Lassonde <gabriel.lassonde@gmail.com> wrote:
This question was probably answered before but I ran into a problem
trying to push many lua values from a c function.

This is a small application that shows the problem.

extern "C"
{
#include "lua-5.1.4/src/lua.h"
#include "lua-5.1.4/src/lauxlib.h"
}

void main()
{
       lua_State * state = luaL_newstate();

       for(size_t i = 0; i < 50; ++i)
       {
               //lua_checkstack(state, 1); // Uncommenting this "fixes" the problem.
               lua_pushnumber(state, 7.0);
       }

       lua_close(state);
}

Upon "lua_close" the program crash (Heap corruption).

I am compiling under windows.

Can anyone help me understand what the problem is?

Thank you,

Gabriel