lua-users home
lua-l archive

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

Sivan Thiruvengadam wrote:
Yes, you are absolutely right.
CLNumList:: CLNumList(lua_State *L)
        if (lua_isuserdata(L,1))

CLNL*t = static_cast< CLNL*>(lua_touserdata(L, 1));
real_object = new CNumList(*t->pT->real_object);

  real_object = new CNumList();

I think that is the problem. See, the constructor of CLNumList is assuming that at stackpos 1 there is a CLNumList. In the case of your call to GetListofNumbers, at that position there is an instance of CLObject. I fail to see how that ends up messing the Lua side of things, but I think it is definitely wrong.

Could you just use push(L, new CLNumList) in GetListofNumbers ?

Something like:
CLObject :GetListofNumbers(lua_State *L)//
  CLNumList*o = new CLNumList();
// initialize it properly with the corresponding CNumList pointer
  CLNumList::push(L, o);
return 1;