diff options
Diffstat (limited to 'lundump.c')
| -rw-r--r-- | lundump.c | 10 |
1 files changed, 4 insertions, 6 deletions
| @@ -162,7 +162,7 @@ static void loadCode (LoadState *S, Proto *f) { | |||
| 162 | } | 162 | } |
| 163 | 163 | ||
| 164 | 164 | ||
| 165 | static void loadFunction(LoadState *S, Proto *f, TString *psource); | 165 | static void loadFunction(LoadState *S, Proto *f); |
| 166 | 166 | ||
| 167 | 167 | ||
| 168 | static void loadConstants (LoadState *S, Proto *f) { | 168 | static void loadConstants (LoadState *S, Proto *f) { |
| @@ -211,7 +211,7 @@ static void loadProtos (LoadState *S, Proto *f) { | |||
| 211 | for (i = 0; i < n; i++) { | 211 | for (i = 0; i < n; i++) { |
| 212 | f->p[i] = luaF_newproto(S->L); | 212 | f->p[i] = luaF_newproto(S->L); |
| 213 | luaC_objbarrier(S->L, f, f->p[i]); | 213 | luaC_objbarrier(S->L, f, f->p[i]); |
| 214 | loadFunction(S, f->p[i], f->source); | 214 | loadFunction(S, f->p[i]); |
| 215 | } | 215 | } |
| 216 | } | 216 | } |
| 217 | 217 | ||
| @@ -266,10 +266,8 @@ static void loadDebug (LoadState *S, Proto *f) { | |||
| 266 | } | 266 | } |
| 267 | 267 | ||
| 268 | 268 | ||
| 269 | static void loadFunction (LoadState *S, Proto *f, TString *psource) { | 269 | static void loadFunction (LoadState *S, Proto *f) { |
| 270 | f->source = loadStringN(S, f); | 270 | f->source = loadStringN(S, f); |
| 271 | if (f->source == NULL) /* no source in dump? */ | ||
| 272 | f->source = psource; /* reuse parent's source */ | ||
| 273 | f->linedefined = loadInt(S); | 271 | f->linedefined = loadInt(S); |
| 274 | f->lastlinedefined = loadInt(S); | 272 | f->lastlinedefined = loadInt(S); |
| 275 | f->numparams = loadByte(S); | 273 | f->numparams = loadByte(S); |
| @@ -342,7 +340,7 @@ LClosure *luaU_undump(lua_State *L, ZIO *Z, const char *name) { | |||
| 342 | luaD_inctop(L); | 340 | luaD_inctop(L); |
| 343 | cl->p = luaF_newproto(L); | 341 | cl->p = luaF_newproto(L); |
| 344 | luaC_objbarrier(L, cl, cl->p); | 342 | luaC_objbarrier(L, cl, cl->p); |
| 345 | loadFunction(&S, cl->p, NULL); | 343 | loadFunction(&S, cl->p); |
| 346 | lua_assert(cl->nupvalues == cl->p->sizeupvalues); | 344 | lua_assert(cl->nupvalues == cl->p->sizeupvalues); |
| 347 | luai_verifycode(L, cl->p); | 345 | luai_verifycode(L, cl->p); |
| 348 | L->top.p--; /* pop table */ | 346 | L->top.p--; /* pop table */ |
