diff options
Diffstat (limited to 'src/lua/common/je_lua_shared.cpp')
-rw-r--r-- | src/lua/common/je_lua_shared.cpp | 72 |
1 files changed, 1 insertions, 71 deletions
diff --git a/src/lua/common/je_lua_shared.cpp b/src/lua/common/je_lua_shared.cpp index 076f176..91a5105 100644 --- a/src/lua/common/je_lua_shared.cpp +++ b/src/lua/common/je_lua_shared.cpp @@ -6,17 +6,15 @@ namespace JinEngine namespace Lua { - SharedBase::SharedBase(lua_State* L, void* obj, const char* t) + SharedBase::SharedBase(void* obj, const char* t) : mCount(0) , mObject(obj) - , mL(L) , mType(t) { } SharedBase::~SharedBase() { - clearDependencies(); } void SharedBase::retain() @@ -28,83 +26,15 @@ namespace JinEngine { if (--mCount <= 0) { - luax_removereference(mL, this); - luax_removeobject(mL, this); delete this; } } - void SharedBase::setDependency(int key, SharedBase* dep) - { - removeDependency(key); - mDependencies.insert(std::pair<int, SharedBase*>(key, dep)); - luax_addreference(mL, this, dep); - } - - void SharedBase::removeDependency(int key) - { - if (!isDependOn(key)) - return; - DepsMap::iterator it = mDependencies.find(key); - SharedBase* dep = it->second; - luax_removereference(mL, this, dep); - mDependencies.erase(it); - } - - void SharedBase::removeDependency(SharedBase* dependency) - { - for (DepsMap::iterator it = mDependencies.begin(); it != mDependencies.end();) - { - SharedBase* dep = it->second; - if (dep == dependency) - { - luax_removereference(mL, this, dep); - mDependencies.erase(it); - } - else - ++it; - } - } - - bool SharedBase::isDependOn(int key) - { - return mDependencies.find(key) != mDependencies.end(); - } - - bool SharedBase::isDependOn(SharedBase* shared) - { - for (std::pair<int, SharedBase*> dep : mDependencies) - { - if (dep.second == shared) - return true; - } - return false; - } - - void SharedBase::clearDependencies() - { - for (std::pair<int, SharedBase*> dep : mDependencies) - luax_removereference(mL, this); - mDependencies.clear(); - } - - SharedBase* SharedBase::getDependency(int key) - { - if (!isDependOn(key)) - return nullptr; - return mDependencies.find(key)->second; - } - bool SharedBase::isType(const char* t) { return strcmp(mType, t) == 0; } - int SharedBase::getDependenciesCount() - { - return mDependencies.size(); - } - const char* SharedBase::getType() { return mType; |