diff options
author | chai <chaifix@163.com> | 2021-10-25 23:29:21 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2021-10-25 23:29:21 +0800 |
commit | 7ecf913256fb396e3027aac3318d996a716a52ef (patch) | |
tree | 4540835c881a63b665e2a692bf30115fd29e8bb0 /Runtime/Lua/LuaBind | |
parent | 0816cd70ca1a213b6ed872bcf3c0bf0912473722 (diff) |
+ job system
Diffstat (limited to 'Runtime/Lua/LuaBind')
-rw-r--r-- | Runtime/Lua/LuaBind/LuaBindClass.hpp | 4 | ||||
-rw-r--r-- | Runtime/Lua/LuaBind/LuaBindState.cpp | 11 | ||||
-rw-r--r-- | Runtime/Lua/LuaBind/LuaBindState.h | 1 |
3 files changed, 13 insertions, 3 deletions
diff --git a/Runtime/Lua/LuaBind/LuaBindClass.hpp b/Runtime/Lua/LuaBind/LuaBindClass.hpp index eb028c2..7fb4529 100644 --- a/Runtime/Lua/LuaBind/LuaBindClass.hpp +++ b/Runtime/Lua/LuaBind/LuaBindClass.hpp @@ -414,7 +414,7 @@ namespace LuaBind PushMemberRef(state, script); state.GetField(-1, method); PushMemberRef(state, script); - state.Call(1, 0); + state.Call(1, 0, onErrorOccured); state.SetTop(top); } @@ -512,7 +512,7 @@ namespace LuaBind if (state.IsType(-1, LUA_TFUNCTION)) { lua_pushvalue(L, 1); // userdata - state.Call(1, 1); // 派生类的GetClassName函数 + state.Call(1, 1, onErrorOccured); // 派生类的GetClassName函数 classname = state.GetValue<cc8*>(-1, ""); } else diff --git a/Runtime/Lua/LuaBind/LuaBindState.cpp b/Runtime/Lua/LuaBind/LuaBindState.cpp index 7c5f043..137acbf 100644 --- a/Runtime/Lua/LuaBind/LuaBindState.cpp +++ b/Runtime/Lua/LuaBind/LuaBindState.cpp @@ -8,7 +8,8 @@ namespace LuaBind { - OnRegisterClassHandler onRegisterNativeClass; + OnRegisterClassHandler onRegisterNativeClass = NULL; + ErrorHandler onErrorOccured = NULL; std::string g_NameSpace = ""; @@ -114,6 +115,10 @@ namespace LuaBind { //luaL_dofile(mState, path.c_str()); LoadFile(path); + if (handler == NULL) + { + handler = onErrorOccured; + } Call(0, 0, handler); } @@ -161,6 +166,10 @@ namespace LuaBind void State::Call(int nArgs, int nResults, ErrorHandler handler) { + if (handler == NULL) + { + handler = onErrorOccured; + } int oldTop = GetTop() - nArgs - 1; int func = 0; if (handler != NULL) diff --git a/Runtime/Lua/LuaBind/LuaBindState.h b/Runtime/Lua/LuaBind/LuaBindState.h index e7e2807..071287f 100644 --- a/Runtime/Lua/LuaBind/LuaBindState.h +++ b/Runtime/Lua/LuaBind/LuaBindState.h @@ -17,6 +17,7 @@ namespace LuaBind typedef void (*ErrorHandler) (cc8 * msg); typedef void(*OnRegisterClassHandler)(State&, int clsIdx, std::string clsName, std::string pkgName); + extern ErrorHandler onErrorOccured; extern OnRegisterClassHandler onRegisterNativeClass; extern std::string g_NameSpace; |