From 3b5ce197411e31d7aaf7d158ac342358593b953f Mon Sep 17 00:00:00 2001 From: "Paul J. Davis" Date: Wed, 11 Oct 2017 16:51:17 -0500 Subject: [PATCH] TEST - Fix largish number decoding I'm hypothesizing that some platforms treat long as 32bit and thus require long long. --- c_src/decoder.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/c_src/decoder.c b/c_src/decoder.c index 34cf467..dcfd2f9 100644 --- a/c_src/decoder.c +++ b/c_src/decoder.c @@ -374,7 +374,7 @@ dec_number(Decoder* d, ERL_NIF_TERM* value) int has_frac = 0; int has_exp = 0; double dval; - long lval; + long long lval; while(d->i < d->len) { switch(state) { @@ -589,7 +589,7 @@ parse: return 1; } } else { - lval = strtol(nbuf, NULL, 10); + lval = strtoll(nbuf, NULL, 10); if(errno != ERANGE) { *value = enif_make_int64(d->env, lval); return 1;