luajit 使用云风的int64库 负数 bad light userdata pointer
来源:互联网 发布:软件开发和互联网 编辑:程序博客网 时间:2024/06/05 05:15
先下Luajit 代码
#define LJ_TLIGHTUD(~3u)
#if LJ_64#define checklightudptr(L, p) \ (((uint64_t)(p) >> 47) ? (lj_err_msg(L, LJ_ERR_BADLU), NULL) : (p))#else#define checklightudptr(L, p)(p)#endif
static LJ_AINLINE void setlightudV(TValue *o, void *p){#if LJ_GC64 o->u64 = (uint64_t)p | (((uint64_t)LJ_TLIGHTUD) << 47);#elif LJ_64 o->u64 = (uint64_t)p | (((uint64_t)0xffff) << 48);#else setgcrefp(o->gcr, p); setitype(o, LJ_TLIGHTUD);#endif}
LUA_API void lua_pushlightuserdata(lua_State *L, void *p){ setlightudV(L->top, checklightudptr(L, p)); incr_top(L);}
大于47位的就被判断为bad light userdata pointer 我没有深入分析过源码。也不知道为什么要做判断。
所以暂时不能用这种处理方式来处理负数的问题
0 0
- luajit 使用云风的int64库 负数 bad light userdata pointer
- lua: userdata的metatable使用
- cocos2d-x中luajit的使用
- 判断系统使用的是否是luajit
- cocos2d-x中luajit的使用
- lua: cocos2d-x中luajit的使用
- cocos2d-x中luajit的使用
- Cocos2d-x中luajit的使用
- 使用 localStorage和userData 的例子
- ——int64与long long的使用
- [lua/unity/cocos2dx]关于云风pbc不支持int64的解决办法
- as3 的 int64数据类型
- 【Lua】windows下使用Cygwin+NDK编译Android平台的LuaJIT库
- int64
- [备忘]通过LuaJIT的FFI使用mmap功能
- UserData使用总结
- DHTMLX TREE userdata 使用
- lua userdata 使用
- java自定义注解
- ArrayIndexOutOfBoundsException listview 不同视图问题
- Linux系统网络性能实例分析
- Windows MySQL BAT脚本控制启动、停止、重启
- MySQL-临时表
- luajit 使用云风的int64库 负数 bad light userdata pointer
- OC获取本周日期
- ORA-28390: auto login wallet not open but encryption wallet may be open
- myeclipse6.5 debug 无法进入jsp页面
- MySQL 加锁处理分析
- 第九周项目二 对称矩阵压缩存储的实现与应用(1)
- JAVA中的内部类
- Linux创建用户只能访问某个目录
- AJAX兼容IE6的方法