aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Pall <mike>2016-04-24 17:14:35 +0200
committerMike Pall <mike>2016-04-24 17:14:35 +0200
commitd8ac6230ed95a60b79e58a4aa2ba7f6d0b132e9e (patch)
treeb8f4096f7fe3246126318b69fd96c301d25dea3e
parent344fe5f01de5557cac4381d56d90c50335cae3db (diff)
parent7b26e9c998095ef9fbc4540908df6c30a693baa0 (diff)
downloadluajit-d8ac6230ed95a60b79e58a4aa2ba7f6d0b132e9e.tar.gz
luajit-d8ac6230ed95a60b79e58a4aa2ba7f6d0b132e9e.tar.bz2
luajit-d8ac6230ed95a60b79e58a4aa2ba7f6d0b132e9e.zip
Merge branch 'master' into v2.1
Diffstat (limited to '')
-rw-r--r--src/lj_cparse.c15
-rw-r--r--src/lj_strfmt.c8
2 files changed, 16 insertions, 7 deletions
diff --git a/src/lj_cparse.c b/src/lj_cparse.c
index 7ec4a5ee..16d2cb65 100644
--- a/src/lj_cparse.c
+++ b/src/lj_cparse.c
@@ -297,13 +297,17 @@ static CPToken cp_next_(CPState *cp)
297 else return '/'; 297 else return '/';
298 break; 298 break;
299 case '|': 299 case '|':
300 if (cp_get(cp) != '|') return '|'; cp_get(cp); return CTOK_OROR; 300 if (cp_get(cp) != '|') return '|';
301 cp_get(cp); return CTOK_OROR;
301 case '&': 302 case '&':
302 if (cp_get(cp) != '&') return '&'; cp_get(cp); return CTOK_ANDAND; 303 if (cp_get(cp) != '&') return '&';
304 cp_get(cp); return CTOK_ANDAND;
303 case '=': 305 case '=':
304 if (cp_get(cp) != '=') return '='; cp_get(cp); return CTOK_EQ; 306 if (cp_get(cp) != '=') return '=';
307 cp_get(cp); return CTOK_EQ;
305 case '!': 308 case '!':
306 if (cp_get(cp) != '=') return '!'; cp_get(cp); return CTOK_NE; 309 if (cp_get(cp) != '=') return '!';
310 cp_get(cp); return CTOK_NE;
307 case '<': 311 case '<':
308 if (cp_get(cp) == '=') { cp_get(cp); return CTOK_LE; } 312 if (cp_get(cp) == '=') { cp_get(cp); return CTOK_LE; }
309 else if (cp->c == '<') { cp_get(cp); return CTOK_SHL; } 313 else if (cp->c == '<') { cp_get(cp); return CTOK_SHL; }
@@ -313,7 +317,8 @@ static CPToken cp_next_(CPState *cp)
313 else if (cp->c == '>') { cp_get(cp); return CTOK_SHR; } 317 else if (cp->c == '>') { cp_get(cp); return CTOK_SHR; }
314 return '>'; 318 return '>';
315 case '-': 319 case '-':
316 if (cp_get(cp) != '>') return '-'; cp_get(cp); return CTOK_DEREF; 320 if (cp_get(cp) != '>') return '-';
321 cp_get(cp); return CTOK_DEREF;
317 case '$': 322 case '$':
318 return cp_param(cp); 323 return cp_param(cp);
319 case '\0': return CTOK_EOF; 324 case '\0': return CTOK_EOF;
diff --git a/src/lj_strfmt.c b/src/lj_strfmt.c
index 7c7d81d3..04c71e88 100644
--- a/src/lj_strfmt.c
+++ b/src/lj_strfmt.c
@@ -98,11 +98,15 @@ char * LJ_FASTCALL lj_strfmt_wint(char *p, int32_t k)
98 uint32_t u = (uint32_t)k; 98 uint32_t u = (uint32_t)k;
99 if (k < 0) { u = (uint32_t)-k; *p++ = '-'; } 99 if (k < 0) { u = (uint32_t)-k; *p++ = '-'; }
100 if (u < 10000) { 100 if (u < 10000) {
101 if (u < 10) goto dig1; if (u < 100) goto dig2; if (u < 1000) goto dig3; 101 if (u < 10) goto dig1;
102 if (u < 100) goto dig2;
103 if (u < 1000) goto dig3;
102 } else { 104 } else {
103 uint32_t v = u / 10000; u -= v * 10000; 105 uint32_t v = u / 10000; u -= v * 10000;
104 if (v < 10000) { 106 if (v < 10000) {
105 if (v < 10) goto dig5; if (v < 100) goto dig6; if (v < 1000) goto dig7; 107 if (v < 10) goto dig5;
108 if (v < 100) goto dig6;
109 if (v < 1000) goto dig7;
106 } else { 110 } else {
107 uint32_t w = v / 10000; v -= w * 10000; 111 uint32_t w = v / 10000; v -= w * 10000;
108 if (w >= 10) WINT_R(w, 10, 10) 112 if (w >= 10) WINT_R(w, 10, 10)