aboutsummaryrefslogtreecommitdiff
path: root/src/lua/common/je_lua_shared.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lua/common/je_lua_shared.cpp')
-rw-r--r--src/lua/common/je_lua_shared.cpp72
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;