Lines Matching refs:bl
260 BlockCnt *bl = fs->bl; in markupval() local
261 while (bl->nactvar > level) bl = bl->previous; in markupval()
262 bl->upval = 1; in markupval()
365 BlockCnt *bl = ls->fs->bl; in findlabel() local
369 for (i = bl->firstlabel; i < dyd->label.n; i++) { in findlabel()
373 (bl->upval || dyd->label.n > bl->firstlabel)) in findlabel()
403 int i = ls->fs->bl->firstgoto; in findgotos()
419 static void movegotosout (FuncState *fs, BlockCnt *bl) { in movegotosout() argument
420 int i = bl->firstgoto; in movegotosout()
426 if (gt->nactvar > bl->nactvar) { in movegotosout()
427 if (bl->upval) in movegotosout()
428 luaK_patchclose(fs, gt->pc, bl->nactvar); in movegotosout()
429 gt->nactvar = bl->nactvar; in movegotosout()
437 static void enterblock (FuncState *fs, BlockCnt *bl, lu_byte isloop) { in enterblock() argument
438 bl->isloop = isloop; in enterblock()
439 bl->nactvar = fs->nactvar; in enterblock()
440 bl->firstlabel = fs->ls->dyd->label.n; in enterblock()
441 bl->firstgoto = fs->ls->dyd->gt.n; in enterblock()
442 bl->upval = 0; in enterblock()
443 bl->previous = fs->bl; in enterblock()
444 fs->bl = bl; in enterblock()
472 BlockCnt *bl = fs->bl; in leaveblock() local
474 if (bl->previous && bl->upval) { in leaveblock()
477 luaK_patchclose(fs, j, bl->nactvar); in leaveblock()
480 if (bl->isloop) in leaveblock()
482 fs->bl = bl->previous; in leaveblock()
483 removevars(fs, bl->nactvar); in leaveblock()
484 lua_assert(bl->nactvar == fs->nactvar); in leaveblock()
486 ls->dyd->label.n = bl->firstlabel; /* remove local labels */ in leaveblock()
487 if (bl->previous) /* inner block? */ in leaveblock()
488 movegotosout(fs, bl); /* update pending gotos to outer block */ in leaveblock()
489 else if (bl->firstgoto < ls->dyd->gt.n) /* pending gotos in outer block? */ in leaveblock()
490 undefgoto(ls, &ls->dyd->gt.arr[bl->firstgoto]); /* error */ in leaveblock()
526 static void open_func (LexState *ls, FuncState *fs, BlockCnt *bl) { in open_func() argument
542 fs->bl = NULL; in open_func()
550 enterblock(fs, bl, 0); in open_func()
572 lua_assert(fs->bl == NULL); in close_func()
790 BlockCnt bl; in body() local
793 open_func(ls, &new_fs, &bl); in body()
1084 BlockCnt bl; in block() local
1085 enterblock(fs, &bl, 0); in block()
1196 for (i = fs->bl->firstlabel; i < ll->n; i++) { in checkrepeated()
1226 ll->arr[l].nactvar = fs->bl->nactvar; in labelstat()
1237 BlockCnt bl; in whilestat() local
1241 enterblock(fs, &bl, 1); in whilestat()
1284 BlockCnt bl; in forbody() local
1290 enterblock(fs, &bl, 0); /* scope for declared variables */ in forbody()
1359 BlockCnt bl; in forstat() local
1360 enterblock(fs, &bl, 1); /* scope for loop and control variables */ in forstat()
1375 BlockCnt bl; in test_then_block() local
1384 enterblock(fs, &bl, 0); /* must enter block before 'goto' */ in test_then_block()
1396 enterblock(fs, &bl, 0); in test_then_block()
1604 BlockCnt bl; in mainfunc() local
1606 open_func(ls, fs, &bl); in mainfunc()