diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/lua/common/je_lua_shared.cpp | 13 | ||||
-rw-r--r-- | src/lua/common/je_lua_shared.hpp | 16 |
2 files changed, 12 insertions, 17 deletions
diff --git a/src/lua/common/je_lua_shared.cpp b/src/lua/common/je_lua_shared.cpp index 62dfab9..fce6d81 100644 --- a/src/lua/common/je_lua_shared.cpp +++ b/src/lua/common/je_lua_shared.cpp @@ -7,18 +7,5 @@ namespace JinEngine namespace Lua { - void Shared::retain() - { - ++mCount; - } - - void Shared::release() - { - if (--mCount <= 0) - { - delete this; - } - } - } }
\ No newline at end of file diff --git a/src/lua/common/je_lua_shared.hpp b/src/lua/common/je_lua_shared.hpp index 16dd943..d9d9a0e 100644 --- a/src/lua/common/je_lua_shared.hpp +++ b/src/lua/common/je_lua_shared.hpp @@ -56,6 +56,7 @@ namespace JinEngine private: friend class LuaObject; + // Disable copy. Shared(const Shared& shared); /// @@ -63,8 +64,7 @@ namespace JinEngine /// ~Shared() { - Object* obj = static_cast<Object*>(mObject); - delete obj; + delete mObject; } /// @@ -73,8 +73,16 @@ namespace JinEngine /// Sharedʱһüͬһ߳УһEngineObjectֻһLuaObjectnew /// instanceУômCountͱEngineObjectĹ߳ /// - void retain(); - void release(); + inline void Shared::retain() + { + ++mCount; + } + + inline void Shared::release() + { + if (--mCount <= 0) + delete this; + } Object* mObject; int mCount; |