[Tarantool-patches] [PATCH luajit] LJ_GC64: Fix HREFK optimization.

Sergey Kaplun skaplun at tarantool.org
Mon Feb 5 12:53:56 MSK 2024


Hi, Maxim!
Thanks for the fixes!
LGTM, except a single nit below.

On 02.02.24, Maxim Kokryashkin wrote:
> Hi, Sergey!
> Thanks for the review!
> Fixed your comments, branch is force-pushed.
> Here is the diff with changes:

<snipped>

> New commit message:
> ===
> LJ_GC64: Fix HREFK optimization.
> 
> Contributed by XmiliaH.
> 
> (cherry-picked from commit 91bc6b8ad1f373c1ce9003dc024b2e21fad0e444)
> 
> In `lj_record_idx` when `ix->oldv` is the global nilnode and the
> required key is not present in the table, it is possible to pass
> the constant key lookup optimization condition because of the
> `uint32_t` (`MSize`) overflow. Because of that, further recording
> incorrectly removes the check for the nilnode, which produces
> wrong results when trace is called for a different table.
> 
> The issue is solved by using `GCSize`, which has a size of

Minor: I'd say 'which size is defines by the target system' or something
like that (to mention that it is 32 bit for non-GC64 build).

> 64 bits, instead of `MSize`.
> 
> Maxim Kokryashkin:
> * added the description and the test for the problem
> 
> Part of tarantool/tarantool#9145
> ===

<snipped>

> >
> > --
> > Best regards,
> > Sergey Kaplun

-- 
Best regards,
Sergey Kaplun


More information about the Tarantool-patches mailing list