diff options
author | Mike Pall <mike> | 2018-04-22 13:27:25 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2018-04-22 13:27:25 +0200 |
commit | 02b521981a1ab919ff2cd4d9bcaee80baf77dce2 (patch) | |
tree | 935d8b7402a6e4025e0b670eb6b08589df9ab365 /src | |
parent | 046129dbdda5261c1b17469a2895a113d14c070a (diff) | |
download | luajit-02b521981a1ab919ff2cd4d9bcaee80baf77dce2.tar.gz luajit-02b521981a1ab919ff2cd4d9bcaee80baf77dce2.tar.bz2 luajit-02b521981a1ab919ff2cd4d9bcaee80baf77dce2.zip |
FFI: Add tonumber() specialization for failed conversions.
Contributed by Javier Guerra Giraldez.
Diffstat (limited to 'src')
-rw-r--r-- | src/lj_crecord.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/lj_crecord.c b/src/lj_crecord.c index 84fc49ee..bc88d635 100644 --- a/src/lj_crecord.c +++ b/src/lj_crecord.c | |||
@@ -1661,6 +1661,8 @@ void LJ_FASTCALL lj_crecord_tonumber(jit_State *J, RecordFFData *rd) | |||
1661 | d = ctype_get(cts, CTID_DOUBLE); | 1661 | d = ctype_get(cts, CTID_DOUBLE); |
1662 | J->base[0] = crec_ct_tv(J, d, 0, J->base[0], &rd->argv[0]); | 1662 | J->base[0] = crec_ct_tv(J, d, 0, J->base[0], &rd->argv[0]); |
1663 | } else { | 1663 | } else { |
1664 | /* Specialize to the ctype that couldn't be converted. */ | ||
1665 | argv2cdata(J, J->base[0], &rd->argv[0]); | ||
1664 | J->base[0] = TREF_NIL; | 1666 | J->base[0] = TREF_NIL; |
1665 | } | 1667 | } |
1666 | } | 1668 | } |