rename item data to count, add function to get current class name in lua

This commit is contained in:
Eduardo Bart
2012-02-01 13:20:13 -02:00
parent 266917cc3c
commit 2a62159a61
13 changed files with 41 additions and 34 deletions

View File

@@ -48,7 +48,8 @@ void LuaInterface::init()
// register LuaObject, the base of all other objects
registerClass<LuaObject>();
bindClassMemberGetField<LuaObject>("use_count", &LuaObject::getUseCount);
bindClassMemberFunction<LuaObject>("getUseCount", &LuaObject::getUseCount);
bindClassMemberFunction<LuaObject>("getClassName", &LuaObject::getClassName);
}
void LuaInterface::terminate()
@@ -958,7 +959,7 @@ void LuaInterface::pushObject(const LuaObjectPtr& obj)
new(newUserdata(sizeof(LuaObjectPtr))) LuaObjectPtr(obj);
// set the userdata metatable
getGlobal(Fw::mkstr(obj->getLuaObjectName(), "_mt"));
getGlobal(Fw::mkstr(obj->getClassName(), "_mt"));
assert(!isNil());
setMetatable();
}

View File

@@ -61,8 +61,8 @@ public:
/// @note each userdata of this object on lua counts as a reference
int getUseCount();
/// Returns the class name used in Lua
virtual std::string getLuaObjectName() const {
/// Returns the derived class name, its the same name used in Lua
virtual std::string getClassName() const {
// TODO: this could be cached for more performance
return Fw::demangleName(typeid(*this).name());
}