Files
LuaCangjia_api/lib/lua/lapi.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

25 lines
545 B
C

/*
** $Id: lapi.h,v 2.7.1.1 2013/04/12 18:48:47 roberto Exp $
** Auxiliary functions from Lua API
** See Copyright Notice in lua.h
*/
#ifndef lapi_h
#define lapi_h
#include "llimits.h"
#include "lstate.h"
#define api_incr_top(L) {L->top++; api_check(L, L->top <= L->ci->top, \
"stack overflow");}
#define adjustresults(L,nres) \
{ if ((nres) == LUA_MULTRET && L->ci->top < L->top) L->ci->top = L->top; }
#define api_checknelems(L,n) api_check(L, (n) < (L->top - L->ci->func), \
"not enough elements in the stack")
#endif