diff options
author | chai <chaifix@163.com> | 2018-11-12 21:58:05 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2018-11-12 21:58:05 +0800 |
commit | af62f267a24091a16cbafe844d59cdbd4e78f5b1 (patch) | |
tree | 3862cee497b30a9c54761c7cd60c5de5af4a78d3 /src/lua/common/je_lua_function.cpp | |
parent | 72e45f0062d727cedd576d1e1251f6722454a119 (diff) |
*使用int做状态机key
Diffstat (limited to 'src/lua/common/je_lua_function.cpp')
-rw-r--r-- | src/lua/common/je_lua_function.cpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/lua/common/je_lua_function.cpp b/src/lua/common/je_lua_function.cpp new file mode 100644 index 0000000..e202d99 --- /dev/null +++ b/src/lua/common/je_lua_function.cpp @@ -0,0 +1,45 @@ +#include "je_lua_function.h" + +namespace JinEngine +{ + namespace Lua + { + + LuaFunc::LuaFunc(lua_State* L) + : mLuaFunc(nullptr) + , mParams(0) + , mL(L) + { + } + + LuaFunc::~LuaFunc() + { + delete mLuaFunc; + for (auto p : mParams) + delete p; + } + + void LuaFunc::setFunc(int i, uint nresults ) + { + if (mLuaFunc != nullptr) + delete mLuaFunc; + mLuaFunc = new LuaRef(mL, i); + mNResults = nresults; + } + + void LuaFunc::pushParam(int i) + { + mParams.push_back(new LuaRef(mL, i)); + } + + uint LuaFunc::call() + { + mLuaFunc->push(); + for (auto p : mParams) + p->push(); + luax_call(mL, mParams.size(), mNResults); + return mNResults; + } + + } +}
\ No newline at end of file |