aboutsummaryrefslogtreecommitdiff
path: root/ldump.c
diff options
context:
space:
mode:
Diffstat (limited to 'ldump.c')
-rw-r--r--ldump.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/ldump.c b/ldump.c
index 234b011f..4cf55e09 100644
--- a/ldump.c
+++ b/ldump.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: ldump.c,v 1.4 2003/02/11 23:52:12 lhf Exp $ 2** $Id: ldump.c,v 1.4 2003/02/11 23:52:12 lhf Exp lhf $
3** save bytecodes 3** save bytecodes
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -22,6 +22,7 @@ typedef struct {
22 lua_State* L; 22 lua_State* L;
23 lua_Chunkwriter write; 23 lua_Chunkwriter write;
24 void* data; 24 void* data;
25 int strip;
25} DumpState; 26} DumpState;
26 27
27static void DumpBlock(const void* b, size_t size, DumpState* D) 28static void DumpBlock(const void* b, size_t size, DumpState* D)
@@ -132,9 +133,9 @@ static void DumpFunction(const Proto* f, const TString* p, DumpState* D)
132 DumpByte(f->numparams,D); 133 DumpByte(f->numparams,D);
133 DumpByte(f->is_vararg,D); 134 DumpByte(f->is_vararg,D);
134 DumpByte(f->maxstacksize,D); 135 DumpByte(f->maxstacksize,D);
135 DumpLines(f,D); 136 if (D->strip) DumpInt(0,D); else DumpLines(f,D);
136 DumpLocals(f,D); 137 if (D->strip) DumpInt(0,D); else DumpLocals(f,D);
137 DumpUpvalues(f,D); 138 if (D->strip) DumpInt(0,D); else DumpUpvalues(f,D);
138 DumpConstants(f,D); 139 DumpConstants(f,D);
139 DumpCode(f,D); 140 DumpCode(f,D);
140} 141}
@@ -147,10 +148,6 @@ static void DumpHeader(DumpState* D)
147 DumpByte(sizeof(int),D); 148 DumpByte(sizeof(int),D);
148 DumpByte(sizeof(size_t),D); 149 DumpByte(sizeof(size_t),D);
149 DumpByte(sizeof(Instruction),D); 150 DumpByte(sizeof(Instruction),D);
150 DumpByte(SIZE_OP,D);
151 DumpByte(SIZE_A,D);
152 DumpByte(SIZE_B,D);
153 DumpByte(SIZE_C,D);
154 DumpByte(sizeof(lua_Number),D); 151 DumpByte(sizeof(lua_Number),D);
155 DumpNumber(TEST_NUMBER,D); 152 DumpNumber(TEST_NUMBER,D);
156} 153}
@@ -158,13 +155,14 @@ static void DumpHeader(DumpState* D)
158/* 155/*
159** dump function as precompiled chunk 156** dump function as precompiled chunk
160*/ 157*/
161void luaU_dump (lua_State* L, const Proto* Main, lua_Chunkwriter w, void* data) 158int luaU_dump (lua_State* L, const Proto* Main, lua_Chunkwriter w, void* data, int strip)
162{ 159{
163 DumpState D; 160 DumpState D;
164 D.L=L; 161 D.L=L;
165 D.write=w; 162 D.write=w;
166 D.data=data; 163 D.data=data;
164 D.strip=strip;
167 DumpHeader(&D); 165 DumpHeader(&D);
168 DumpFunction(Main,NULL,&D); 166 DumpFunction(Main,NULL,&D);
167 return 1;
169} 168}
170