diff options
| author | Mike Pall <mike> | 2017-10-02 09:22:46 +0200 |
|---|---|---|
| committer | Mike Pall <mike> | 2017-10-02 09:22:46 +0200 |
| commit | b4ed3219a1a98dd9fe7d1e3eeea3b82f5a780948 (patch) | |
| tree | 464e16c0f3534d92459dac0a133afbdf1402c20f /src | |
| parent | 6a2d8b0b4d49eb5aac600c219e5903420806e56e (diff) | |
| download | luajit-b4ed3219a1a98dd9fe7d1e3eeea3b82f5a780948.tar.gz luajit-b4ed3219a1a98dd9fe7d1e3eeea3b82f5a780948.tar.bz2 luajit-b4ed3219a1a98dd9fe7d1e3eeea3b82f5a780948.zip | |
LJ_GC64: Fix ir_khash for non-string GCobj.
Contributed by Peter Cawley.
Diffstat (limited to 'src')
| -rw-r--r-- | src/lj_asm.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/lj_asm.c b/src/lj_asm.c index bed2268e..d961927b 100644 --- a/src/lj_asm.c +++ b/src/lj_asm.c | |||
| @@ -1017,7 +1017,11 @@ static uint32_t ir_khash(IRIns *ir) | |||
| 1017 | } else { | 1017 | } else { |
| 1018 | lua_assert(irt_isgcv(ir->t)); | 1018 | lua_assert(irt_isgcv(ir->t)); |
| 1019 | lo = u32ptr(ir_kgc(ir)); | 1019 | lo = u32ptr(ir_kgc(ir)); |
| 1020 | #if LJ_GC64 | ||
| 1021 | hi = (uint32_t)(u64ptr(ir_kgc(ir)) >> 32) | (irt_toitype(ir->t) << 15); | ||
| 1022 | #else | ||
| 1020 | hi = lo + HASH_BIAS; | 1023 | hi = lo + HASH_BIAS; |
| 1024 | #endif | ||
| 1021 | } | 1025 | } |
| 1022 | return hashrot(lo, hi); | 1026 | return hashrot(lo, hi); |
| 1023 | } | 1027 | } |
