diff options
author | Mike Pall <mike> | 2011-02-06 12:23:58 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2011-02-06 12:23:58 +0100 |
commit | bf58160b7aa21d15b710f948d160da277a02a613 (patch) | |
tree | 2db9391ef5c8d2ac401dfe3673de4c68af506290 /src/lj_ffrecord.c | |
parent | 4c74f704644c2f843cb304aba0c901723097ff14 (diff) | |
download | luajit-bf58160b7aa21d15b710f948d160da277a02a613.tar.gz luajit-bf58160b7aa21d15b710f948d160da277a02a613.tar.bz2 luajit-bf58160b7aa21d15b710f948d160da277a02a613.zip |
FFI: Simplify and fix tonumber() for cdata objects.
Diffstat (limited to '')
-rw-r--r-- | src/lj_ffrecord.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/lj_ffrecord.c b/src/lj_ffrecord.c index 2296dac6..5b618a80 100644 --- a/src/lj_ffrecord.c +++ b/src/lj_ffrecord.c | |||
@@ -253,13 +253,13 @@ static void LJ_FASTCALL recff_select(jit_State *J, RecordFFData *rd) | |||
253 | static void LJ_FASTCALL recff_tonumber(jit_State *J, RecordFFData *rd) | 253 | static void LJ_FASTCALL recff_tonumber(jit_State *J, RecordFFData *rd) |
254 | { | 254 | { |
255 | TRef tr = J->base[0]; | 255 | TRef tr = J->base[0]; |
256 | TRef base = J->base[1]; | ||
257 | if (tr && base) { | ||
258 | base = lj_ir_toint(J, base); | ||
259 | if (!tref_isk(base) || IR(tref_ref(base))->i != 10) | ||
260 | recff_nyiu(J); | ||
261 | } | ||
256 | if (tref_isnumber_str(tr)) { | 262 | if (tref_isnumber_str(tr)) { |
257 | TRef base = J->base[1]; | ||
258 | if (base) { | ||
259 | base = lj_ir_toint(J, base); | ||
260 | if (!tref_isk(base) || IR(tref_ref(base))->i != 10) | ||
261 | recff_nyiu(J); | ||
262 | } | ||
263 | if (tref_isstr(tr)) { | 263 | if (tref_isstr(tr)) { |
264 | TValue tmp; | 264 | TValue tmp; |
265 | if (!lj_str_tonum(strV(&rd->argv[0]), &tmp)) | 265 | if (!lj_str_tonum(strV(&rd->argv[0]), &tmp)) |