Lines Matching full:bl
259 BlockCnt *bl = fs->bl; in markupval() local
260 while (bl->nactvar > level) bl = bl->previous; in markupval()
261 bl->upval = 1; in markupval()
364 BlockCnt *bl = ls->fs->bl; in findlabel() local
368 for (i = bl->firstlabel; i < dyd->label.n; i++) { in findlabel()
372 (bl->upval || dyd->label.n > bl->firstlabel)) in findlabel()
402 int i = ls->fs->bl->firstgoto; in findgotos()
418 static void movegotosout (FuncState *fs, BlockCnt *bl) { in movegotosout() argument
419 int i = bl->firstgoto; in movegotosout()
425 if (gt->nactvar > bl->nactvar) { in movegotosout()
426 if (bl->upval) in movegotosout()
427 luaK_patchclose(fs, gt->pc, bl->nactvar); in movegotosout()
428 gt->nactvar = bl->nactvar; in movegotosout()
436 static void enterblock (FuncState *fs, BlockCnt *bl, lu_byte isloop) { in enterblock() argument
437 bl->isloop = isloop; in enterblock()
438 bl->nactvar = fs->nactvar; in enterblock()
439 bl->firstlabel = fs->ls->dyd->label.n; in enterblock()
440 bl->firstgoto = fs->ls->dyd->gt.n; in enterblock()
441 bl->upval = 0; in enterblock()
442 bl->previous = fs->bl; in enterblock()
443 fs->bl = bl; in enterblock()
471 BlockCnt *bl = fs->bl; in leaveblock() local
473 if (bl->previous && bl->upval) { in leaveblock()
476 luaK_patchclose(fs, j, bl->nactvar); in leaveblock()
479 if (bl->isloop) in leaveblock()
481 fs->bl = bl->previous; in leaveblock()
482 removevars(fs, bl->nactvar); in leaveblock()
483 lua_assert(bl->nactvar == fs->nactvar); in leaveblock()
485 ls->dyd->label.n = bl->firstlabel; /* remove local labels */ in leaveblock()
486 if (bl->previous) /* inner block? */ in leaveblock()
487 movegotosout(fs, bl); /* update pending gotos to outer block */ in leaveblock()
488 else if (bl->firstgoto < ls->dyd->gt.n) /* pending gotos in outer block? */ in leaveblock()
489 undefgoto(ls, &ls->dyd->gt.arr[bl->firstgoto]); /* error */ in leaveblock()
525 static void open_func (LexState *ls, FuncState *fs, BlockCnt *bl) { in open_func() argument
541 fs->bl = NULL; in open_func()
549 enterblock(fs, bl, 0); in open_func()
571 lua_assert(fs->bl == NULL); in close_func()
795 BlockCnt bl; in body() local
798 open_func(ls, &new_fs, &bl); in body()
1089 BlockCnt bl; in block() local
1090 enterblock(fs, &bl, 0); in block()
1201 for (i = fs->bl->firstlabel; i < ll->n; i++) { in checkrepeated()
1231 ll->arr[l].nactvar = fs->bl->nactvar; in labelstat()
1242 BlockCnt bl; in whilestat() local
1246 enterblock(fs, &bl, 1); in whilestat()
1289 BlockCnt bl; in forbody() local
1295 enterblock(fs, &bl, 0); /* scope for declared variables */ in forbody()
1364 BlockCnt bl; in forstat() local
1365 enterblock(fs, &bl, 1); /* scope for loop and control variables */ in forstat()
1381 BlockCnt bl; in test_then_block() local
1390 enterblock(fs, &bl, 0); /* must enter block before 'goto' */ in test_then_block()
1402 enterblock(fs, &bl, 0); in test_then_block()
1610 BlockCnt bl; in mainfunc() local
1612 open_func(ls, fs, &bl); in mainfunc()