aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2012-10-15 01:31:56 +0200
committerMike Pall <mike>2012-10-15 01:31:56 +0200
commit93e4040b600c993bd89910b8ac99d9242f85c702 (patch)
tree800516844ed8d4c1eb6c711579e85e407cf9b7f9 /src
parent6d3623485678fb7de85e031a650cce57e29bf4eb (diff)
downloadluajit-93e4040b600c993bd89910b8ac99d9242f85c702.tar.gz
luajit-93e4040b600c993bd89910b8ac99d9242f85c702.tar.bz2
luajit-93e4040b600c993bd89910b8ac99d9242f85c702.zip
Workaround for broken Android sprintf("%g", -0.0).
Diffstat (limited to 'src')
-rw-r--r--src/lj_str.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/lj_str.c b/src/lj_str.c
index 1060ec6d..fc4153dd 100644
--- a/src/lj_str.c
+++ b/src/lj_str.c
@@ -174,6 +174,9 @@ size_t LJ_FASTCALL lj_str_bufnum(char *s, cTValue *o)
174{ 174{
175 if (LJ_LIKELY((o->u32.hi << 1) < 0xffe00000)) { /* Finite? */ 175 if (LJ_LIKELY((o->u32.hi << 1) < 0xffe00000)) { /* Finite? */
176 lua_Number n = o->n; 176 lua_Number n = o->n;
177#if __BIONIC__
178 if (tvismzero(o)) { s[0] = '-'; s[1] = '0'; return 2; }
179#endif
177 return (size_t)lua_number2str(s, n); 180 return (size_t)lua_number2str(s, n);
178 } else if (((o->u32.hi & 0x000fffff) | o->u32.lo) != 0) { 181 } else if (((o->u32.hi & 0x000fffff) | o->u32.lo) != 0) {
179 s[0] = 'n'; s[1] = 'a'; s[2] = 'n'; return 3; 182 s[0] = 'n'; s[1] = 'a'; s[2] = 'n'; return 3;