aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Pall <mike>2010-12-09 22:35:49 +0100
committerMike Pall <mike>2010-12-09 22:35:49 +0100
commit870bcd76405a4b695055a422c8a83956ae7afa7c (patch)
treec990c34786a24c1791a0729f05816292c44afeb7
parentcc0efd85d670f3804aeda057420798045d8d5b74 (diff)
downloadluajit-870bcd76405a4b695055a422c8a83956ae7afa7c.tar.gz
luajit-870bcd76405a4b695055a422c8a83956ae7afa7c.tar.bz2
luajit-870bcd76405a4b695055a422c8a83956ae7afa7c.zip
Add missing guard for check against "#" when recording select().
-rw-r--r--src/lj_ffrecord.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lj_ffrecord.c b/src/lj_ffrecord.c
index 0fb48504..e2f8a39f 100644
--- a/src/lj_ffrecord.c
+++ b/src/lj_ffrecord.c
@@ -207,11 +207,11 @@ int32_t lj_ffrecord_select_mode(jit_State *J, TRef tr, TValue *tv)
207{ 207{
208 if (tref_isstr(tr) && *strVdata(tv) == '#') { /* select('#', ...) */ 208 if (tref_isstr(tr) && *strVdata(tv) == '#') { /* select('#', ...) */
209 if (strV(tv)->len == 1) { 209 if (strV(tv)->len == 1) {
210 emitir(IRT(IR_EQ, IRT_STR), tr, lj_ir_kstr(J, strV(tv))); 210 emitir(IRTG(IR_EQ, IRT_STR), tr, lj_ir_kstr(J, strV(tv)));
211 } else { 211 } else {
212 TRef trptr = emitir(IRT(IR_STRREF, IRT_P32), tr, 0); 212 TRef trptr = emitir(IRT(IR_STRREF, IRT_P32), tr, 0);
213 TRef trchar = emitir(IRT(IR_XLOAD, IRT_U8), trptr, IRXLOAD_READONLY); 213 TRef trchar = emitir(IRT(IR_XLOAD, IRT_U8), trptr, IRXLOAD_READONLY);
214 emitir(IRT(IR_EQ, IRT_INT), trchar, lj_ir_kint(J, '#')); 214 emitir(IRTG(IR_EQ, IRT_INT), trchar, lj_ir_kint(J, '#'));
215 } 215 }
216 return 0; 216 return 0;
217 } else { /* select(n, ...) */ 217 } else { /* select(n, ...) */