コード例 #1
0
ファイル: lundump.c プロジェクト: CobooGuo/elua
static void LoadCode(LoadState* S, Proto* f)
{
    int n=LoadInt(S);
    Align4(S);
    if (!luaZ_direct_mode(S->Z)) {
        f->code=luaM_newvector(S->L,n,Instruction);
        LoadVector(S,f->code,n,sizeof(Instruction));
    } else {
        f->code=(Instruction*)luaZ_get_crt_address(S->Z);
        LoadVector(S,NULL,n,sizeof(Instruction));
    }
    f->sizecode=n;
}
コード例 #2
0
ファイル: lundump.c プロジェクト: CobooGuo/elua
static TString* LoadString(LoadState* S)
{
    int32_t size;
    LoadVar(S,size);
    if (size==0)
        return NULL;
    else
    {
        char* s;
        if (!luaZ_direct_mode(S->Z)) {
            s = luaZ_openspace(S->L,S->b,size);
            LoadBlock(S,s,size);
            return luaS_newlstr(S->L,s,size-1); /* remove trailing zero */
        } else {
            s = (char*)luaZ_get_crt_address(S->Z);
            LoadBlock(S,NULL,size);
            return luaS_newrolstr(S->L,s,size-1);
        }
    }
}
コード例 #3
0
ファイル: lundump.c プロジェクト: 3dot3/nodemcu-firmware
 for (i=0; i<n; i++) f->p[i]=LoadFunction(S,f->source);
}

static void LoadDebug(LoadState* S, Proto* f)
{
 int i,n;
 n=LoadInt(S);
 Align4(S);

#ifdef LUA_OPTIMIZE_DEBUG
 if(n) {
   if (!luaZ_direct_mode(S->Z)) {
     f->packedlineinfo=luaM_newvector(S->L,n,unsigned char);
     LoadBlock(S,f->packedlineinfo,n);
   } else {
     f->packedlineinfo=(unsigned char*)luaZ_get_crt_address(S->Z);
     LoadBlock(S,NULL,n);
   }
 } else {
   f->packedlineinfo=NULL;
 }
#else
 if (!luaZ_direct_mode(S->Z)) {
   f->lineinfo=luaM_newvector(S->L,n,int);
   LoadVector(S,f->lineinfo,n,sizeof(int));
 } else {
   f->lineinfo=(int*)luaZ_get_crt_address(S->Z);
   LoadVector(S,NULL,n,sizeof(int));
 }
 f->sizelineinfo=n;
 #endif