Browse Source

TEST - Fix largish number decoding

I'm hypothesizing that some platforms treat long as 32bit and thus
require long long.
fix-large-int-conversions
Paul J. Davis 7 years ago
parent
commit
3b5ce19741
1 changed files with 2 additions and 2 deletions
  1. +2
    -2
      c_src/decoder.c

+ 2
- 2
c_src/decoder.c View File

@ -374,7 +374,7 @@ dec_number(Decoder* d, ERL_NIF_TERM* value)
int has_frac = 0; int has_frac = 0;
int has_exp = 0; int has_exp = 0;
double dval; double dval;
long lval;
long long lval;
while(d->i < d->len) { while(d->i < d->len) {
switch(state) { switch(state) {
@ -589,7 +589,7 @@ parse:
return 1; return 1;
} }
} else { } else {
lval = strtol(nbuf, NULL, 10);
lval = strtoll(nbuf, NULL, 10);
if(errno != ERANGE) { if(errno != ERANGE) {
*value = enif_make_int64(d->env, lval); *value = enif_make_int64(d->env, lval);
return 1; return 1;

Loading…
Cancel
Save