Browse Source

Add workaround for lj_meta_tset() newkey inconsistency.

Mike Pall 14 năm trước cách đây
mục cha
commit
4dca589af0
1 tập tin đã thay đổi với 2 bổ sung1 xóa
  1. 2 1
      src/lj_record.c

+ 2 - 1
src/lj_record.c

@@ -1021,7 +1021,8 @@ TRef lj_record_idx(jit_State *J, RecordIndex *ix)
   xref = rec_idx_key(J, ix);
   xrefop = IR(tref_ref(xref))->o;
   loadop = xrefop == IR_AREF ? IR_ALOAD : IR_HLOAD;
-  oldv = ix->oldv;
+  /* NYI: workaround until lj_meta_tset() inconsistency is solved. */
+  oldv = xrefop == IR_KKPTR ? (cTValue *)ir_kptr(IR(tref_ref(xref))) : ix->oldv;
 
   if (ix->val == 0) {  /* Indexed load */
     IRType t = itype2irt(oldv);