lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


> [...]
> 
> 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