summaryrefslogtreecommitdiff
path: root/src/lib_string.c
diff options
context:
space:
mode:
authorMike Pall <mike>2011-06-13 00:58:13 +0200
committerMike Pall <mike>2011-06-13 01:04:11 +0200
commit4994fcc32caa90eb25e9e7532c5ed195abb4bb95 (patch)
treed1741d1b9e61c10145775ec805639c389b7ef2a8 /src/lib_string.c
parent9da94d135535c607d71a5d7e902b561ee418f0ca (diff)
downloadluajit-4994fcc32caa90eb25e9e7532c5ed195abb4bb95.tar.gz
luajit-4994fcc32caa90eb25e9e7532c5ed195abb4bb95.tar.bz2
luajit-4994fcc32caa90eb25e9e7532c5ed195abb4bb95.zip
Add support for bytecode loading/saving.
Diffstat (limited to 'src/lib_string.c')
-rw-r--r--src/lib_string.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/lib_string.c b/src/lib_string.c
index e54b2d50..5cbe6e4d 100644
--- a/src/lib_string.c
+++ b/src/lib_string.c
@@ -22,6 +22,7 @@
22#include "lj_tab.h" 22#include "lj_tab.h"
23#include "lj_state.h" 23#include "lj_state.h"
24#include "lj_ff.h" 24#include "lj_ff.h"
25#include "lj_bcdump.h"
25#include "lj_char.h" 26#include "lj_char.h"
26#include "lj_lib.h" 27#include "lj_lib.h"
27 28
@@ -114,10 +115,24 @@ LJLIB_ASM_(string_upper)
114 115
115/* ------------------------------------------------------------------------ */ 116/* ------------------------------------------------------------------------ */
116 117
118static int writer_buf(lua_State *L, const void *p, size_t size, void *b)
119{
120 luaL_addlstring((luaL_Buffer *)b, (const char *)p, size);
121 UNUSED(L);
122 return 0;
123}
124
117LJLIB_CF(string_dump) 125LJLIB_CF(string_dump)
118{ 126{
119 lj_err_caller(L, LJ_ERR_STRDUMP); 127 GCfunc *fn = lj_lib_checkfunc(L, 1);
120 return 0; /* unreachable */ 128 int strip = L->base+1 < L->top && tvistruecond(L->base+1);
129 luaL_Buffer b;
130 L->top = L->base+1;
131 luaL_buffinit(L, &b);
132 if (!isluafunc(fn) || lj_bcwrite(L, funcproto(fn), writer_buf, &b, strip))
133 lj_err_caller(L, LJ_ERR_STRDUMP);
134 luaL_pushresult(&b);
135 return 1;
121} 136}
122 137
123/* ------------------------------------------------------------------------ */ 138/* ------------------------------------------------------------------------ */