lua-users home
lua-l archive

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


Hi!

The lua_pushobject macro you mentioned uses the C++ placement new operator [1] to call constructor of the object.

Your code does not call constructor of the object.


[1] http://www.parashift.com/c++-faq/placement-new.html


On Sun, Feb 23, 2014 at 7:03 PM, Victor Bombi <sonoro@telefonica.net> wrote:
Hello,

May be someone could help me to understand.

I have used lua_pushobject described in http://lua-users.org/wiki/DoItYourselfCppBinding

I am not able to understand the difference between:

soundFileSt *sndf = (soundFileSt *)lua_newuserdata(L, sizeof(soundFileSt));
luaL_getmetatable(L, "soundFileSt ");
lua_setmetatable(L, -2);

and

soundFileSt *sndf = (soundFileSt *)lua_pushobject(L, soundFileSt)();

They must be different because the first makes my module to crash but not the second.

Thank you for your attention
victor bombi