lua_object.c 631 B

123456789101112131415161718192021222324252627282930
  1. #include <brl.mod/blitz.mod/blitz.h>
  2. #include <pub.mod/lua.mod/lua-5.1.4/src/lua.h>
  3. void lua_boxobject( lua_State *L,BBObject *obj ){
  4. void *p;
  5. BBRETAIN( obj );
  6. p=lua_newuserdata( L,4 );
  7. *(BBObject**)p=obj;
  8. }
  9. BBObject *lua_unboxobject( lua_State *L,int index ){
  10. void *p;
  11. p=lua_touserdata( L,index );
  12. return *(BBObject**)p;
  13. }
  14. void lua_pushlightobject( lua_State *L,BBObject *obj ){
  15. lua_pushlightuserdata( L,obj );
  16. }
  17. BBObject *lua_tolightobject( lua_State *L,int index ){
  18. return (BBObject*)( lua_touserdata( L,index ) );
  19. }
  20. void lua_gcobject( lua_State *L ){
  21. BBObject *obj=lua_unboxobject( L,1 );
  22. BBRELEASE( obj );
  23. }