[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Bug in hook(luaV_finishOp:OP_LE)?
- From: Roberto Ierusalimschy <roberto@...>
- Date: Tue, 7 Apr 2015 12:35:44 -0300
> [...]
>
> it has different result when call or not call 'lua_yield' in 'hook' fun, i
> think there is a bug in when finish execution of an opcode(OP_LE)
> interrupted by an yield.
>
> [...]
> ......
>
> in func luaV_finishOp, i think it is necessary to invert result when both
> R(B) and R(C) has no meta method 'TM_LE':
> if (op == OP_LE && /* "<=" using "<" instead? */
> ttisnil(luaT_gettmbyobj(L, base + GETARG_B(inst), TM_LE)) &&
> ttisnil(luaT_gettmbyobj(L, base + GETARG_C(inst), TM_LE)))
> res = !res; /* invert result */
Many thanks for the detailed report. We will have a look into it.
-- Roberto