From 5938212748636d21d6f4b372481ab3b6dd6c7538 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Mon, 28 Sep 2009 13:32:50 -0300 Subject: information about upvalues (where they come from) kept in Proto structure, instead of sequence of pseudo-opcodes after OP_CLOSURE --- ldump.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'ldump.c') diff --git a/ldump.c b/ldump.c index e17c9363..e8337f03 100644 --- a/ldump.c +++ b/ldump.c @@ -1,5 +1,5 @@ /* -** $Id: ldump.c,v 2.9 2006/09/11 14:07:24 roberto Exp roberto $ +** $Id: ldump.c,v 2.10 2008/07/03 14:25:05 roberto Exp roberto $ ** save precompiled Lua chunks ** See Copyright Notice in lua.h */ @@ -108,6 +108,17 @@ static void DumpConstants(const Proto* f, DumpState* D) for (i=0; ip[i],f->source,D); } +static void DumpUpvalues(const Proto* f, DumpState* D) +{ + int i,n=f->sizeupvalues; + DumpInt(n,D); + for (i=0; iupvalues[i].instack, D); + DumpChar(f->upvalues[i].idx, D); + } +} + static void DumpDebug(const Proto* f, DumpState* D) { int i,n; @@ -123,7 +134,7 @@ static void DumpDebug(const Proto* f, DumpState* D) } n= (D->strip) ? 0 : f->sizeupvalues; DumpInt(n,D); - for (i=0; iupvalues[i],D); + for (i=0; iupvalues[i].name,D); } static void DumpFunction(const Proto* f, const TString* p, DumpState* D) @@ -131,12 +142,12 @@ static void DumpFunction(const Proto* f, const TString* p, DumpState* D) DumpString((f->source==p || D->strip) ? NULL : f->source,D); DumpInt(f->linedefined,D); DumpInt(f->lastlinedefined,D); - DumpChar(f->nups,D); DumpChar(f->numparams,D); DumpChar(f->is_vararg,D); DumpChar(f->maxstacksize,D); DumpCode(f,D); DumpConstants(f,D); + DumpUpvalues(f,D); DumpDebug(f,D); } -- cgit v1.2.3-55-g6feb