blob: 4165ca6ca230280c4d6643aee4ebfd786b6a9312 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
#include "l_callback.h"
namespace JinEngine
{
namespace Lua
{
LuaCallback::LuaCallback(lua_State* L)
: mLuaFunc(nullptr)
, mParams(0)
, mL(L)
{
}
LuaCallback::~LuaCallback()
{
delete mLuaFunc;
for (auto p : mParams)
delete p;
}
void LuaCallback::setFunc(int i)
{
if (mLuaFunc != nullptr)
delete mLuaFunc;
mLuaFunc = new LuaRef(mL, i);
}
void LuaCallback::pushParam(int i)
{
mParams.push_back(new LuaRef(mL, i));
}
void LuaCallback::call()
{
mLuaFunc->push();
for (auto p : mParams)
p->push();
luax_call(mL, mParams.size(), 0);
}
}
}
|