mirror of
https://github.com/lua/lua
synced 2024-11-22 12:51:30 +03:00
details (using proper version of 'setobj')
This commit is contained in:
parent
03094da80c
commit
c25380c28d
4
ldo.c
4
ldo.c
@ -1,5 +1,5 @@
|
||||
/*
|
||||
** $Id: ldo.c,v 2.158 2017/05/13 12:57:20 roberto Exp roberto $
|
||||
** $Id: ldo.c,v 2.159 2017/05/13 13:54:47 roberto Exp roberto $
|
||||
** Stack and Call structure of Lua
|
||||
** See Copyright Notice in lua.h
|
||||
*/
|
||||
@ -116,7 +116,7 @@ l_noret luaD_throw (lua_State *L, int errcode) {
|
||||
global_State *g = G(L);
|
||||
L->status = cast_byte(errcode); /* mark it as dead */
|
||||
if (g->mainthread->errorJmp) { /* main thread has a handler? */
|
||||
setobjs2s(L, g->mainthread->top++, L->top - 1); /* copy error obj. */
|
||||
setobj2s(L, g->mainthread->top++, L->top - 1); /* copy error obj. */
|
||||
luaD_throw(g->mainthread, errcode); /* re-throw in main thread */
|
||||
}
|
||||
else { /* no handler at all; abort */
|
||||
|
6
lvm.c
6
lvm.c
@ -1,5 +1,5 @@
|
||||
/*
|
||||
** $Id: lvm.c,v 2.283 2017/05/18 19:34:39 roberto Exp roberto $
|
||||
** $Id: lvm.c,v 2.284 2017/05/18 19:44:19 roberto Exp roberto $
|
||||
** Lua virtual machine
|
||||
** See Copyright Notice in lua.h
|
||||
*/
|
||||
@ -690,13 +690,13 @@ void luaV_finishOp (lua_State *L) {
|
||||
StkId top = L->top - 1; /* top when 'luaT_trybinTM' was called */
|
||||
int b = GETARG_B(inst); /* first element to concatenate */
|
||||
int total = cast_int(top - 1 - (base + b)); /* yet to concatenate */
|
||||
setobj2s(L, top - 2, top); /* put TM result in proper position */
|
||||
setobjs2s(L, top - 2, top); /* put TM result in proper position */
|
||||
if (total > 1) { /* are there elements to concat? */
|
||||
L->top = top - 1; /* top is one after last element (at top-2) */
|
||||
luaV_concat(L, total); /* concat them (may yield again) */
|
||||
}
|
||||
/* move final result to final position */
|
||||
setobj2s(L, ci->func + 1 + GETARG_A(inst), L->top - 1);
|
||||
setobjs2s(L, ci->func + 1 + GETARG_A(inst), L->top - 1);
|
||||
L->top = ci->top; /* restore top */
|
||||
break;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user