diff --git a/src/lj_arch.h b/src/lj_arch.h index 24b90945..ed22273f 100644 --- a/src/lj_arch.h +++ b/src/lj_arch.h @@ -776,7 +776,7 @@ extern void *LJ_WIN_LOADLIBA(const char *path); #define LUAJIT_SECURITY_STRID 0 #endif -#define LJ_DS_LOADBUFFER_PATCH 0 +#define LJ_DS_LOADBUFFER_PATCH 1 #ifndef LJ_DS_LOADBUFFER_PATCH #define LJ_DS_LOADBUFFER_PATCH LJ_DS #endif diff --git a/src/lj_load.c b/src/lj_load.c index a158b41f..14d1ccc3 100644 --- a/src/lj_load.c +++ b/src/lj_load.c @@ -224,13 +224,14 @@ LUALIB_API int luaL_loadbufferx(lua_State *L, const char *buf, size_t size, #if LJ_DS_LOADBUFFER_PATCH LUA_DATA_API const char* (*lj_path_map)(const char* k) = NULL; +LUA_DATA_API int (*lj_need_transform_path)() = NULL; #endif LUALIB_API int luaL_loadbuffer(lua_State *L, const char *buf, size_t size, const char *name) { #if LJ_DS_LOADBUFFER_PATCH - if (buf != name){ + if (buf != name && lj_need_transform_path()){ if (name[0] != '@'){ if (lj_path_map){ const char* real_path = lj_path_map(name);