【求指导】lua接口setUniformVec3v() 怎么使用

看导出源码 关键部分
if (argc == 3) {
int arg0;
ok &= luaval_to_int32(tolua_S, 2,(int *)&arg0, “cc.GLProgramState:setUniformVec3v”);

        if (!ok) { break; }
        ssize_t arg1;
        ok &= luaval_to_ssize(tolua_S, 3, &arg1, "cc.GLProgramState:setUniformVec3v");

        if (!ok) { break; }
        **const cocos2d::Vec3* arg2;**

** ok &= luaval_to_object(tolua_S, 4, “cc.Vec3”,&arg2, “cc.GLProgramState:setUniformVec3v”);**//这里传什么才能成功

        if (!ok) { break; }
        cobj->setUniformVec3v(arg0, arg1, arg2);
        lua_settop(tolua_S, 1);
        return 1;

lua 怎么构建const cocos2d::Vec3* arg2这种参数或者说怎么传才能成功让c++解析出vec3*类型

正所谓自己的问题,总得自己解决。。来个临时解决方案
第三个参数只能靠自己实现了
static Vec3* arg2 = NULL;
if (arg2)
free(arg2); //由于渲染的时候释放,未免内存泄漏,我没想到更好的方法。(这类有个坑,哈哈,仔细看的同学就发现了)
arg2 = (cocos2d::Vec3*)malloc(sizeof(cocos2d::Vec3) * arg1);
for (int i = 0; i < arg1; i++){
Vec3 arg;
ok &= luaval_to_vec3(tolua_S, 4 + i, &arg, “cc.GLProgramState:setUniformVec3”);
if (!ok) { break; }
arg2[i] = Vec3(arg);
}
if (!ok) { break; }
cobj->setUniformVec3v(arg0, arg1, arg2);
lua_settop(tolua_S, 1);