Files
LuaCangjia_api/lib/lua/lundump.h
JianFeeeee 8aff33e402 feat: 适配 Lua 5.2.4 (lua_5.2.4 分支)
- lib/lua 替换为 Lua 5.2.4 官方源码; CMakeLists 补 lbitlib.c(5.2 linit 注册 bit32)、删 lutf8lib.c(5.2 无此文件)
- I/O 重定向机制改造: 5.2 无 lua_getextraspace → iopath 指针存入
  Registry 固定索引(IOPATH_REG_IDX=1), 回调经 get_iopath() 取回,
  free_lua 时释放 —— 该方案同样适用于更低版本
- typed interop 版本自适应: capture_result() 的 lua_isinteger 分支用
  #if LUA_VERSION_NUM >= 503 包裹, 5.2 及以下所有数字统一 CJT_NUM
- 测试跨版本适配: PackagePathConfig 接受 require 的两种返回语义;
  typed 数值断言 EXPECT_INT_OR_NUM 宏兼容有无 integer 子类型;
  大整数保真断言仅对 5.3+ 生效(5.2 经 double 必然丢精度)
- 验证: GTest 44/44 通过
2026-08-25 10:47:52 +08:00

29 lines
772 B
C

/*
** $Id: lundump.h,v 1.39.1.1 2013/04/12 18:48:47 roberto Exp $
** load precompiled Lua chunks
** See Copyright Notice in lua.h
*/
#ifndef lundump_h
#define lundump_h
#include "lobject.h"
#include "lzio.h"
/* load one chunk; from lundump.c */
LUAI_FUNC Closure* luaU_undump (lua_State* L, ZIO* Z, Mbuffer* buff, const char* name);
/* make header; from lundump.c */
LUAI_FUNC void luaU_header (lu_byte* h);
/* dump one chunk; from ldump.c */
LUAI_FUNC int luaU_dump (lua_State* L, const Proto* f, lua_Writer w, void* data, int strip);
/* data to catch conversion errors */
#define LUAC_TAIL "\x19\x93\r\n\x1a\n"
/* size in bytes of header of binary files */
#define LUAC_HEADERSIZE (sizeof(LUA_SIGNATURE)-sizeof(char)+2+6+sizeof(LUAC_TAIL)-sizeof(char))
#endif