diff options
author | chai <chaifix@163.com> | 2018-11-11 20:18:26 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2018-11-11 20:18:26 +0800 |
commit | 7c2f33bdf37de7acf9b0728a115377081344db1c (patch) | |
tree | cd82766dd4d1d84229ae610e69225bb48b3001b9 /src/lua/common/je_lua_shared.hpp | |
parent | e92caa97329016d012b46b9d37e1b2c3b613a8f2 (diff) |
*格式化
Diffstat (limited to 'src/lua/common/je_lua_shared.hpp')
-rw-r--r-- | src/lua/common/je_lua_shared.hpp | 54 |
1 files changed, 22 insertions, 32 deletions
diff --git a/src/lua/common/je_lua_shared.hpp b/src/lua/common/je_lua_shared.hpp index 7ad7c1d..53f557a 100644 --- a/src/lua/common/je_lua_shared.hpp +++ b/src/lua/common/je_lua_shared.hpp @@ -11,46 +11,45 @@ namespace JinEngine public: void retain() { - ++(*count); + ++count; } void release() { - if (--(*count) <= 0) + if (--count <= 0) delete this; } // object type string const char* const type; - void setUserdata(void* data) - { - userdata = data; - } + void setUserdata(void* data) + { + userdata = data; + } - void* getUserdata() - { - return userdata; - } + void* getUserdata() + { + return userdata; + } protected: SharedBase(void* obj, const char* t) - : object(obj) + : count(1) + , object(obj) , type(t) { - count = new int(1); } SharedBase(const SharedBase&); virtual ~SharedBase() { - } void* object; - int* count; - void* userdata; + int count; + void* userdata; }; template<class T> @@ -62,35 +61,26 @@ namespace JinEngine { } - ~Shared() - { - T* obj = static_cast<T*>(object); - delete obj; - } - T* operator->() { - return static_cast<T*>(object); + return (T*)object; } T* getObject() { - return static_cast<T*>(object); + return (T*)object; } - T* operator &() - { - return static_cast<T*>(object); - } + private: + // Disable copy constructor. + Shared(const Shared<T>& shared); - T& operator *() + ~Shared() { - return *(static_cast<T*>(object)); + T* obj = static_cast<T*>(object); + delete obj; } - private: - Shared(const Shared<T>& ref); - }; } |