aboutsummaryrefslogtreecommitdiff
path: root/src/lua/modules/time/je_lua_timer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lua/modules/time/je_lua_timer.cpp')
-rw-r--r--src/lua/modules/time/je_lua_timer.cpp12
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;
}