diff options
author | David Robillard <d@drobilla.net> | 2019-01-07 20:33:42 +0100 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2019-04-13 19:48:23 +0200 |
commit | 2719fc4709d05193aa89557051af1d65a738c4d5 (patch) | |
tree | 18a11d72f789535d79f835f7ad44daa4d1b536b5 /src/node.c | |
parent | 105cc91e8fb7bb1a70e5715dbbbf3f967d508065 (diff) | |
download | serd-2719fc4709d05193aa89557051af1d65a738c4d5.tar.gz serd-2719fc4709d05193aa89557051af1d65a738c4d5.tar.bz2 serd-2719fc4709d05193aa89557051af1d65a738c4d5.zip |
Fix integer conversion warnings
Diffstat (limited to 'src/node.c')
-rw-r--r-- | src/node.c | 13 |
1 files changed, 7 insertions, 6 deletions
@@ -407,6 +407,7 @@ is_uri_path_char(const char c) if (is_alpha(c) || is_digit(c)) { return true; } + switch (c) { case '-': case '.': case '_': case '~': // unreserved case ':': case '@': // pchar @@ -548,7 +549,7 @@ serd_new_decimal(double d, unsigned frac_digits, const SerdNode* datatype) char* t = s - 1; uint64_t dec = (uint64_t)int_part; do { - *t-- = '0' + (dec % 10); + *t-- = '0' + (char)(dec % 10); } while ((dec /= 10) > 0); @@ -558,16 +559,16 @@ serd_new_decimal(double d, unsigned frac_digits, const SerdNode* datatype) double frac_part = fabs(d - int_part); if (frac_part < DBL_EPSILON) { *s++ = '0'; - node->n_bytes = (s - buf); + node->n_bytes = (size_t)(s - buf); } else { - uint64_t frac = llround(frac_part * pow(10.0, (int)frac_digits)); + long long frac = llround(frac_part * pow(10.0, (int)frac_digits)); s += frac_digits - 1; unsigned i = 0; // Skip trailing zeros for (; i < frac_digits - 1 && !(frac % 10); ++i, --s, frac /= 10) {} - node->n_bytes = (s - buf) + 1; + node->n_bytes = (size_t)(s - buf) + 1; // Write digits from last trailing zero to decimal point for (; i < frac_digits; ++i) { @@ -586,7 +587,7 @@ serd_new_integer(int64_t i, const SerdNode* datatype) { const SerdNode* type = datatype ? datatype : &serd_xsd_integer.node; int64_t abs_i = (i < 0) ? -i : i; - const unsigned digits = serd_digits(abs_i); + const unsigned digits = serd_digits((double)abs_i); const size_t type_len = serd_node_total_size(type); const size_t total_len = digits + 2 + type_len; @@ -601,7 +602,7 @@ serd_new_integer(int64_t i, const SerdNode* datatype) ++s; } - node->n_bytes = (s - buf) + 1; + node->n_bytes = (size_t)((s - buf) + 1); // Write integer part (right to left) do { |