aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Pall <mike>2013-12-22 11:43:44 +0100
committerMike Pall <mike>2013-12-22 11:43:44 +0100
commit89e8d7070169d11e7f188754006e03a40699c5dc (patch)
tree16edf68529deabc01dd59b4592c9333264968379
parent279673ddfcff8e82cac0704d371ed405ad7a229b (diff)
downloadluajit-89e8d7070169d11e7f188754006e03a40699c5dc.tar.gz
luajit-89e8d7070169d11e7f188754006e03a40699c5dc.tar.bz2
luajit-89e8d7070169d11e7f188754006e03a40699c5dc.zip
Fix compilation of string.byte(s, nil, n).
-rw-r--r--src/lj_ffrecord.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/src/lj_ffrecord.c b/src/lj_ffrecord.c
index 35e2e88e..693fd297 100644
--- a/src/lj_ffrecord.c
+++ b/src/lj_ffrecord.c
@@ -657,20 +657,19 @@ static void LJ_FASTCALL recff_string_range(jit_State *J, RecordFFData *rd)
657 end = argv2int(J, &rd->argv[2]); 657 end = argv2int(J, &rd->argv[2]);
658 } 658 }
659 } else { /* string.byte(str, [,start [,end]]) */ 659 } else { /* string.byte(str, [,start [,end]]) */
660 if (!tref_isnil(J->base[1])) { 660 if (tref_isnil(J->base[1])) {
661 start = 1;
662 trstart = lj_ir_kint(J, 1);
663 } else {
661 start = argv2int(J, &rd->argv[1]); 664 start = argv2int(J, &rd->argv[1]);
662 trstart = lj_opt_narrow_toint(J, J->base[1]); 665 trstart = lj_opt_narrow_toint(J, J->base[1]);
663 trend = J->base[2]; 666 }
664 if (tref_isnil(trend)) { 667 if (J->base[1] && !tref_isnil(J->base[2])) {
665 trend = trstart; 668 trend = lj_opt_narrow_toint(J, J->base[2]);
666 end = start; 669 end = argv2int(J, &rd->argv[2]);
667 } else {
668 trend = lj_opt_narrow_toint(J, trend);
669 end = argv2int(J, &rd->argv[2]);
670 }
671 } else { 670 } else {
672 trend = trstart = lj_ir_kint(J, 1); 671 trend = trstart;
673 end = start = 1; 672 end = start;
674 } 673 }
675 } 674 }
676 if (end < 0) { 675 if (end < 0) {