aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Pall <mike>2013-05-29 23:12:09 +0200
committerMike Pall <mike>2013-05-29 23:12:09 +0200
commit45f3ee87945e69f9e601dbe5d5f3708d00926e4d (patch)
tree818899ae089637da7038985de486e757670a80b2
parentc5ebfa0c6793562d7392ffc68b1318d250f47a02 (diff)
parent3eeb7d3aa02259e93db6e4816909e80acb57f8f8 (diff)
downloadluajit-45f3ee87945e69f9e601dbe5d5f3708d00926e4d.tar.gz
luajit-45f3ee87945e69f9e601dbe5d5f3708d00926e4d.tar.bz2
luajit-45f3ee87945e69f9e601dbe5d5f3708d00926e4d.zip
Merge branch 'master' into v2.1
-rw-r--r--src/lj_crecord.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/lj_crecord.c b/src/lj_crecord.c
index c3b01f63..87f58256 100644
--- a/src/lj_crecord.c
+++ b/src/lj_crecord.c
@@ -619,7 +619,7 @@ static TRef crec_ct_tv(jit_State *J, CType *d, TRef dp, TRef sp, cTValue *sval)
619 emitir(IRTGI(IR_EQ), tr, lj_ir_kint(J, UDTYPE_IO_FILE)); 619 emitir(IRTGI(IR_EQ), tr, lj_ir_kint(J, UDTYPE_IO_FILE));
620 sp = emitir(IRT(IR_FLOAD, IRT_PTR), sp, IRFL_UDATA_FILE); 620 sp = emitir(IRT(IR_FLOAD, IRT_PTR), sp, IRFL_UDATA_FILE);
621 } else { 621 } else {
622 sp = emitir(IRT(IR_ADD, IRT_P32), sp, lj_ir_kint(J, sizeof(GCudata))); 622 sp = emitir(IRT(IR_ADD, IRT_PTR), sp, lj_ir_kintp(J, sizeof(GCudata)));
623 } 623 }
624 } else if (tref_isstr(sp)) { 624 } else if (tref_isstr(sp)) {
625 if (ctype_isenum(d->info)) { /* Match string against enum constant. */ 625 if (ctype_isenum(d->info)) { /* Match string against enum constant. */
@@ -637,7 +637,8 @@ static TRef crec_ct_tv(jit_State *J, CType *d, TRef dp, TRef sp, cTValue *sval)
637 } else if (ctype_isrefarray(d->info)) { /* Copy string to array. */ 637 } else if (ctype_isrefarray(d->info)) { /* Copy string to array. */
638 lj_trace_err(J, LJ_TRERR_BADTYPE); /* NYI */ 638 lj_trace_err(J, LJ_TRERR_BADTYPE); /* NYI */
639 } else { /* Otherwise pass the string data as a const char[]. */ 639 } else { /* Otherwise pass the string data as a const char[]. */
640 sp = emitir(IRT(IR_STRREF, IRT_P32), sp, lj_ir_kint(J, 0)); 640 /* Don't use STRREF. It folds with SNEW, which loses the trailing NUL. */
641 sp = emitir(IRT(IR_ADD, IRT_PTR), sp, lj_ir_kintp(J, sizeof(GCstr)));
641 sid = CTID_A_CCHAR; 642 sid = CTID_A_CCHAR;
642 } 643 }
643 } else { /* NYI: tref_istab(sp), tref_islightud(sp). */ 644 } else { /* NYI: tref_istab(sp), tref_islightud(sp). */