- Timestamp:
- 06/19/14 02:22:56 (11 years ago)
- Location:
- trunk/src
- Files:
-
- 1 deleted
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/lua/lua_map_area.cc
r263 r265 233 233 } 234 234 235 void nv::lua::register_map_area_instance( lua_State* L, intobject_index, map_area* area )236 { 237 lua_rawgeti( L, LUA_REGISTRYINDEX, object_index );235 void nv::lua::register_map_area_instance( lua_State* L, ref object_index, map_area* area ) 236 { 237 lua_rawgeti( L, LUA_REGISTRYINDEX, object_index.get() ); 238 238 lua_pushstring( L, "__map_area_ptr" ); 239 239 lua_pushlightuserdata( L, (map_area*)area ); -
trunk/src/lua/lua_state.cc
r263 r265 328 328 } 329 329 330 lua::ref erencelua::state::register_object( void* o, const char* lua_name )331 { 332 if ( o == nullptr ) return ref_none;330 lua::ref lua::state::register_object( void* o, const char* lua_name ) 331 { 332 if ( o == nullptr ) return lua::ref( lua::ref::none ); 333 333 stack_guard guard( this ); 334 334 lua_getglobal( m_state, lua_name ); … … 338 338 } 339 339 deep_pointer_copy( -1, o ); 340 return lua L_ref( m_state, LUA_REGISTRYINDEX);341 } 342 343 lua::ref erencelua::state::register_proto( const char* id, const char* storage )340 return lua::ref( luaL_ref( m_state, LUA_REGISTRYINDEX ) ); 341 } 342 343 lua::ref lua::state::register_proto( const char* id, const char* storage ) 344 344 { 345 345 stack_guard guard( this ); … … 354 354 NV_THROW( runtime_error, std::string( id ) + " not found in " + std::string( storage ) + " storage!" ); 355 355 } 356 return lua L_ref( m_state, LUA_REGISTRYINDEX);356 return lua::ref( luaL_ref( m_state, LUA_REGISTRYINDEX ) ); 357 357 } 358 358 … … 369 369 } 370 370 371 void lua::state::unregister_object( ref erenceobject_index )372 { 373 if ( object_index == ref_nil) return;371 void lua::state::unregister_object( ref object_index ) 372 { 373 if ( !object_index.is_valid() ) return; 374 374 stack_guard guard( this ); 375 lua_rawgeti( m_state, LUA_REGISTRYINDEX, object_index );375 lua_rawgeti( m_state, LUA_REGISTRYINDEX, object_index.get() ); 376 376 lua_pushstring( m_state, "__ptr" ); 377 377 lua_pushboolean( m_state, false ); 378 378 lua_rawset( m_state, -3 ); 379 379 lua_pop( m_state, 1 ); 380 luaL_unref( m_state, LUA_REGISTRYINDEX, object_index );380 luaL_unref( m_state, LUA_REGISTRYINDEX, object_index.get() ); 381 381 } 382 382 … … 419 419 } 420 420 421 void nv::lua::state::store_metadata( ref erenceobject_index, const std::string& metaname, void* pointer )422 { 423 if ( object_index == ref_nil) return;424 lua_rawgeti( m_state, LUA_REGISTRYINDEX, object_index );421 void nv::lua::state::store_metadata( ref object_index, const std::string& metaname, void* pointer ) 422 { 423 if ( !object_index.is_valid() ) return; 424 lua_rawgeti( m_state, LUA_REGISTRYINDEX, object_index.get() ); 425 425 lua_pushstring( m_state, metaname.c_str() ); 426 426 lua_pushlightuserdata( m_state, pointer ); -
trunk/src/lua/lua_values.cc
r262 r265 40 40 } 41 41 42 void nv::lua::detail::push_nil( lua_State *L ) 43 { 44 lua_pushnil( L ); 45 } 46 42 47 void nv::lua::detail::push_unsigned( lua_State *L, lunsigned v ) 43 48 { … … 74 79 lua_pushlightuserdata( L, p ); 75 80 } 81 82 void nv::lua::detail::push_ref_object ( lua_State *L, ref object ) 83 { 84 lua_rawgeti( L, LUA_REGISTRYINDEX, object.get() ); 85 } 86 76 87 77 88 lunsigned nv::lua::detail::to_unsigned( lua_State *L, int index ) -
trunk/src/object.cc
r257 r265 18 18 , m_name() 19 19 , m_uid(0) 20 , m_lua_index(lua::ref _none)21 , m_lua_proto_index(lua::ref _none)20 , m_lua_index(lua::ref::none) 21 , m_lua_proto_index(lua::ref::none) 22 22 , m_parent( nullptr ) 23 23 , m_children() -
trunk/src/root.cc
r264 r265 22 22 destroy_children( o ); 23 23 o->detach(); 24 if ( m_lua_state && o->m_lua_index != lua::ref _none )24 if ( m_lua_state && o->m_lua_index != lua::ref::none ) 25 25 { 26 m_lua_state->unregister_object( o->m_lua_index);26 m_lua_state->unregister_object( lua::ref( o->m_lua_index ) ); 27 27 } 28 28 if ( m_uid_store && o->m_uid != 0 ) … … 47 47 if ( lua_name != nullptr ) 48 48 { 49 o->m_lua_index = m_lua_state->register_object( o, lua_name ) ;49 o->m_lua_index = m_lua_state->register_object( o, lua_name ).get(); 50 50 } 51 51 if ( storage != nullptr ) 52 52 { 53 o->m_lua_proto_index = m_lua_state->register_proto( o->get_id().c_str(), storage ) ;53 o->m_lua_proto_index = m_lua_state->register_proto( o->get_id().c_str(), storage ).get(); 54 54 } 55 55 }
Note: See TracChangeset
for help on using the changeset viewer.