diff options
author | chai <chaifix@163.com> | 2018-11-13 08:27:26 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2018-11-13 08:27:26 +0800 |
commit | 75792c15480d3d99b2ba7e79e143e4b569b22611 (patch) | |
tree | 61e3abc45326c67d348e08400da11f60dff18fa3 /src/lua/common | |
parent | c7e59fb376453e5abad8c862b52eb0f4c7ba829b (diff) |
*修改lua ref
Diffstat (limited to 'src/lua/common')
-rw-r--r-- | src/lua/common/je_lua_callback.cpp (renamed from src/lua/common/je_lua_function.cpp) | 16 | ||||
-rw-r--r-- | src/lua/common/je_lua_callback.h (renamed from src/lua/common/je_lua_function.h) | 35 | ||||
-rw-r--r-- | src/lua/common/je_lua_reference.h | 17 | ||||
-rw-r--r-- | src/lua/common/je_lua_shared.hpp | 8 |
4 files changed, 56 insertions, 20 deletions
diff --git a/src/lua/common/je_lua_function.cpp b/src/lua/common/je_lua_callback.cpp index e202d99..392f919 100644 --- a/src/lua/common/je_lua_function.cpp +++ b/src/lua/common/je_lua_callback.cpp @@ -1,44 +1,42 @@ -#include "je_lua_function.h" +#include "je_lua_callback.h" namespace JinEngine { namespace Lua { - LuaFunc::LuaFunc(lua_State* L) + LuaCallback::LuaCallback(lua_State* L) : mLuaFunc(nullptr) , mParams(0) , mL(L) { } - LuaFunc::~LuaFunc() + LuaCallback::~LuaCallback() { delete mLuaFunc; for (auto p : mParams) delete p; } - void LuaFunc::setFunc(int i, uint nresults ) + void LuaCallback::setFunc(int i) { if (mLuaFunc != nullptr) delete mLuaFunc; mLuaFunc = new LuaRef(mL, i); - mNResults = nresults; } - void LuaFunc::pushParam(int i) + void LuaCallback::pushParam(int i) { mParams.push_back(new LuaRef(mL, i)); } - uint LuaFunc::call() + void LuaCallback::call() { mLuaFunc->push(); for (auto p : mParams) p->push(); - luax_call(mL, mParams.size(), mNResults); - return mNResults; + luax_call(mL, mParams.size(), 0); } } diff --git a/src/lua/common/je_lua_function.h b/src/lua/common/je_lua_callback.h index a2d5ccc..f3301fc 100644 --- a/src/lua/common/je_lua_function.h +++ b/src/lua/common/je_lua_callback.h @@ -12,16 +12,26 @@ namespace JinEngine namespace Lua { - class LuaFunc + /// + /// + /// + class LuaCallback { public: - LuaFunc(lua_State* L); - ~LuaFunc(); + /// + /// + /// + LuaCallback(lua_State* L); + + /// + /// + /// + ~LuaCallback(); /// /// /// - void setFunc(int i, uint nresults); + void setFunc(int i); /// /// @@ -31,13 +41,24 @@ namespace JinEngine /// /// /// - uint call(); + void call(); private: + /// + /// + /// LuaRef* mLuaFunc; + + /// + /// + /// std::vector<LuaRef*> mParams; - lua_State* mL; - uint mNResults; + + /// + /// + /// + lua_State* const mL; + }; } // namespace Lua diff --git a/src/lua/common/je_lua_reference.h b/src/lua/common/je_lua_reference.h index d2d077f..f338762 100644 --- a/src/lua/common/je_lua_reference.h +++ b/src/lua/common/je_lua_reference.h @@ -15,9 +15,19 @@ namespace JinEngine class LuaRef { public: + /// + /// + /// LuaRef(lua_State* L, int i); + + /// + /// + /// ~LuaRef(); + /// + /// + /// void unref(); /// @@ -26,7 +36,14 @@ namespace JinEngine void push(); private: + /// + /// + /// lua_State* const mL; + + /// + /// + /// int mIndex; }; diff --git a/src/lua/common/je_lua_shared.hpp b/src/lua/common/je_lua_shared.hpp index 7ac8923..876fe28 100644 --- a/src/lua/common/je_lua_shared.hpp +++ b/src/lua/common/je_lua_shared.hpp @@ -6,7 +6,7 @@ namespace JinEngine namespace Lua { - /*abstract*/class SharedBase + class SharedBase { public: void retain() @@ -20,7 +20,7 @@ namespace JinEngine delete this; } - // object type string + // Object type string. const char* const type; void setUserdata(void* data) @@ -63,12 +63,12 @@ namespace JinEngine T* operator->() { - return (T*)object; + return static_cast<T*>(object); } T* getObject() { - return (T*)object; + return static_cast<T*>(object); } private: |