summaryrefslogtreecommitdiff
path: root/src/lj_str.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lj_str.c')
-rw-r--r--src/lj_str.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/lj_str.c b/src/lj_str.c
index 60912aed..f1fc8ee1 100644
--- a/src/lj_str.c
+++ b/src/lj_str.c
@@ -190,7 +190,7 @@ size_t LJ_FASTCALL lj_str_bufnum(char *s, cTValue *o)
/* Print integer to buffer. Returns pointer to start. */
char * LJ_FASTCALL lj_str_bufint(char *p, int32_t k)
{
- uint32_t u = (uint32_t)(k < 0 ? -k : k);
+ uint32_t u = k < 0 ? ~(uint32_t)k+1u : (uint32_t)k;
p += 1+10;
do { *--p = (char)('0' + u % 10); } while (u /= 10);
if (k < 0) *--p = '-';