From 2719fc4709d05193aa89557051af1d65a738c4d5 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Mon, 7 Jan 2019 20:33:42 +0100 Subject: Fix integer conversion warnings --- src/node.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/node.c') diff --git a/src/node.c b/src/node.c index c726a2db..0f95d14a 100644 --- a/src/node.c +++ b/src/node.c @@ -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 { -- cgit v1.2.1