siddhesh / rpms / luajit

Forked from rpms/luajit 5 years ago
Clone

Blame 0037-FFI-Add-tonumber-specialization-for-failed-conversio.patch

Siddhesh Poyarekar 47e9ff3
From 02b521981a1ab919ff2cd4d9bcaee80baf77dce2 Mon Sep 17 00:00:00 2001
Siddhesh Poyarekar 47e9ff3
From: Mike Pall <mike>
Siddhesh Poyarekar 47e9ff3
Date: Sun, 22 Apr 2018 13:27:25 +0200
Siddhesh Poyarekar 47e9ff3
Subject: [PATCH 37/72] FFI: Add tonumber() specialization for failed
Siddhesh Poyarekar 47e9ff3
 conversions.
Siddhesh Poyarekar 47e9ff3
Siddhesh Poyarekar 47e9ff3
Contributed by Javier Guerra Giraldez.
Siddhesh Poyarekar 47e9ff3
---
Siddhesh Poyarekar 47e9ff3
 src/lj_crecord.c | 2 ++
Siddhesh Poyarekar 47e9ff3
 1 file changed, 2 insertions(+)
Siddhesh Poyarekar 47e9ff3
Siddhesh Poyarekar 47e9ff3
diff --git a/src/lj_crecord.c b/src/lj_crecord.c
Siddhesh Poyarekar 47e9ff3
index 84fc49e..bc88d63 100644
Siddhesh Poyarekar 47e9ff3
--- a/src/lj_crecord.c
Siddhesh Poyarekar 47e9ff3
+++ b/src/lj_crecord.c
Siddhesh Poyarekar 47e9ff3
@@ -1661,6 +1661,8 @@ void LJ_FASTCALL lj_crecord_tonumber(jit_State *J, RecordFFData *rd)
Siddhesh Poyarekar 47e9ff3
       d = ctype_get(cts, CTID_DOUBLE);
Siddhesh Poyarekar 47e9ff3
     J->base[0] = crec_ct_tv(J, d, 0, J->base[0], &rd->argv[0]);
Siddhesh Poyarekar 47e9ff3
   } else {
Siddhesh Poyarekar 47e9ff3
+    /* Specialize to the ctype that couldn't be converted. */
Siddhesh Poyarekar 47e9ff3
+    argv2cdata(J, J->base[0], &rd->argv[0]);
Siddhesh Poyarekar 47e9ff3
     J->base[0] = TREF_NIL;
Siddhesh Poyarekar 47e9ff3
   }
Siddhesh Poyarekar 47e9ff3
 }
Siddhesh Poyarekar 47e9ff3
-- 
Siddhesh Poyarekar 47e9ff3
2.20.1
Siddhesh Poyarekar 47e9ff3