From 8bd992c5035bfee6aedbcae7669be5b823537aad Mon Sep 17 00:00:00 2001 From: William Wilgus Date: Thu, 18 Jul 2019 14:50:38 -0500 Subject: lua disable bytecode dump & undump functions Adds a flag to remove the ability to dump and load lua bytecode saves 6+kb Change-Id: I080323df7f03f752e0a10928e22a7ce3190a9633 --- apps/plugins/lua/ldump.c | 13 +++++++++++++ apps/plugins/lua/luaconf.h | 4 ++-- apps/plugins/lua/lundump.c | 13 +++++++++++++ apps/plugins/lua/lundump.h | 8 +++++--- 4 files changed, 33 insertions(+), 5 deletions(-) (limited to 'apps/plugins/lua') diff --git a/apps/plugins/lua/ldump.c b/apps/plugins/lua/ldump.c index c9d3d4870f..9afba60a37 100644 --- a/apps/plugins/lua/ldump.c +++ b/apps/plugins/lua/ldump.c @@ -15,6 +15,8 @@ #include "lstate.h" #include "lundump.h" +#ifndef LUA_DISABLE_BYTECODE + typedef struct { lua_State* L; lua_Writer writer; @@ -162,3 +164,14 @@ int luaU_dump (lua_State* L, const Proto* f, lua_Writer w, void* data, int strip DumpFunction(f,NULL,&D); return D.status; } +#else /* LUA_DISABLE_BYTECODE */ +#include "lauxlib.h" +int luaU_dump (lua_State* L, const Proto* f, lua_Writer w, void* data, int strip) +{ + (void) f; + (void) w; + (void) data; + (void) strip; + return luaL_error(L, " bytecode not supported"); +} +#endif diff --git a/apps/plugins/lua/luaconf.h b/apps/plugins/lua/luaconf.h index 4b6f25d008..582968d423 100644 --- a/apps/plugins/lua/luaconf.h +++ b/apps/plugins/lua/luaconf.h @@ -797,7 +797,7 @@ extern long rb_pow(long, long); #undef LUA_COMPAT_GFIND #undef LUA_COMPAT_OPENLIB -/* Resize heap allocated buffers */ +/* Resize [STACK] allocated buffers */ #undef LUAI_MAXVARS /*200*/ #define LUAI_MAXVARS 100 @@ -811,6 +811,6 @@ extern long rb_pow(long, long); #include "rockconf.h" /*else*/ -#define LUAC_TRUST_BINARIES +#define LUA_DISABLE_BYTECODE #endif diff --git a/apps/plugins/lua/lundump.c b/apps/plugins/lua/lundump.c index 6a8422de30..967b45c94b 100644 --- a/apps/plugins/lua/lundump.c +++ b/apps/plugins/lua/lundump.c @@ -20,6 +20,8 @@ #include "lundump.h" #include "lzio.h" +#ifndef LUA_DISABLE_BYTECODE + typedef struct { lua_State* L; ZIO* Z; @@ -225,3 +227,14 @@ void luaU_header (char* h) *h++=(char)sizeof(lua_Number); *h++=(char)(((lua_Number)0.5)==0); /* is lua_Number integral? */ } + +#else /* LUA_DISABLE_BYTECODE */ +#include "lauxlib.h" +Proto* luaU_undump (lua_State* L, ZIO* Z, Mbuffer* buff, const char* name) +{ + (void) Z; + (void) buff; + luaL_error(L, LUA_QL("%s") " bytecode not supported", name); + return NULL; +} +#endif diff --git a/apps/plugins/lua/lundump.h b/apps/plugins/lua/lundump.h index f791a4f173..b2fe851e59 100644 --- a/apps/plugins/lua/lundump.h +++ b/apps/plugins/lua/lundump.h @@ -13,12 +13,13 @@ /* load one chunk; from lundump.c */ LUAI_FUNC Proto* luaU_undump (lua_State* L, ZIO* Z, Mbuffer* buff, const char* name); -/* make header; from lundump.c */ -LUAI_FUNC void luaU_header (char* 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); +#ifndef LUA_DISABLE_BYTECODE +/* make header; from lundump.c */ +LUAI_FUNC void luaU_header (char* h); + #ifdef luac_c /* print one chunk; from print.c */ LUAI_FUNC void luaU_print (const Proto* f, int full); @@ -33,4 +34,5 @@ LUAI_FUNC void luaU_print (const Proto* f, int full); /* size of header of binary files */ #define LUAC_HEADERSIZE 12 +#endif /* LUA_DISABLE_BYTECODE */ #endif -- cgit