diff options
| author | Mike Pall <mike> | 2013-12-22 11:43:44 +0100 |
|---|---|---|
| committer | Mike Pall <mike> | 2013-12-22 11:43:44 +0100 |
| commit | 89e8d7070169d11e7f188754006e03a40699c5dc (patch) | |
| tree | 16edf68529deabc01dd59b4592c9333264968379 /src | |
| parent | 279673ddfcff8e82cac0704d371ed405ad7a229b (diff) | |
| download | luajit-89e8d7070169d11e7f188754006e03a40699c5dc.tar.gz luajit-89e8d7070169d11e7f188754006e03a40699c5dc.tar.bz2 luajit-89e8d7070169d11e7f188754006e03a40699c5dc.zip | |
Fix compilation of string.byte(s, nil, n).
Diffstat (limited to 'src')
| -rw-r--r-- | src/lj_ffrecord.c | 21 |
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) { |
