diff options
Diffstat (limited to 'src/lua/modules/time/je_lua_timer.cpp')
-rw-r--r-- | src/lua/modules/time/je_lua_timer.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/lua/modules/time/je_lua_timer.cpp b/src/lua/modules/time/je_lua_timer.cpp index 9104a42..540f205 100644 --- a/src/lua/modules/time/je_lua_timer.cpp +++ b/src/lua/modules/time/je_lua_timer.cpp @@ -47,7 +47,9 @@ namespace JinEngine func->pushParam(i); Timer::Handler* handler = timer->every(s, timerCallback, func, finishCallback); Proxy* proxy = luax_newinstance(L, Jin_Lua_Handler); - proxy->bind(new Shared<Timer::Handler>(handler, Jin_Lua_Handler)); + Shared<Timer::Handler>* shrHandler = new Shared<Timer::Handler>(handler, Jin_Lua_Handler); + shrHandler->retain(); + proxy->bind(shrHandler); return 1; } @@ -64,7 +66,9 @@ namespace JinEngine func->pushParam(i); Timer::Handler* handler = timer->after(s, timerCallback, func, finishCallback); Proxy* proxy = luax_newinstance(L, Jin_Lua_Handler); - proxy->bind(new Shared<Timer::Handler>(handler, Jin_Lua_Handler)); + Shared<Timer::Handler>* shrHandler = new Shared<Timer::Handler>(handler, Jin_Lua_Handler); + shrHandler->retain(); + proxy->bind(shrHandler); return 1; } @@ -82,7 +86,9 @@ namespace JinEngine func->pushParam(i); Timer::Handler* handler = timer->repeat(s, count, timerCallback, func, finishCallback); Proxy* proxy = luax_newinstance(L, Jin_Lua_Handler); - proxy->bind(new Shared<Timer::Handler>(handler, Jin_Lua_Handler)); + Shared<Timer::Handler>* shrHandler = new Shared<Timer::Handler>(handler, Jin_Lua_Handler); + shrHandler->retain(); + proxy->bind(shrHandler); return 1; } |