diff options
author | David Robillard <d@drobilla.net> | 2012-01-18 01:33:57 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2012-01-18 01:33:57 +0000 |
commit | 8778ef5322c33b4aa656db8a810010df19b70235 (patch) | |
tree | d20f4c5e27e02ec4c3801705bc16a75ab760b9d2 /src/node.c | |
parent | 79efd9f6e30bec80020ab578940d03a228a1d024 (diff) | |
download | serd-8778ef5322c33b4aa656db8a810010df19b70235.tar.gz serd-8778ef5322c33b4aa656db8a810010df19b70235.tar.bz2 serd-8778ef5322c33b4aa656db8a810010df19b70235.zip |
Make serd_node_new_integer take int64_t instead of long.
Turns out long is sometimes 32-bits even on modern 64-bit machines on certain insane Operating Systems...
git-svn-id: http://svn.drobilla.net/serd/trunk@297 490d8e77-9747-427b-9fa3-0b8f29cee8a0
Diffstat (limited to 'src/node.c')
-rw-r--r-- | src/node.c | 10 |
1 files changed, 5 insertions, 5 deletions
@@ -193,12 +193,12 @@ serd_node_new_decimal(double d, unsigned frac_digits) SERD_API SerdNode -serd_node_new_integer(long i) +serd_node_new_integer(int64_t i) { - long abs_i = labs(i); - const long digits = (long)fmax(1.0, ceil(log10((double)abs_i + 1))); - char* buf = (char*)calloc(digits + 2, 1); - SerdNode node = { (const uint8_t*)buf, 0, 0, 0, SERD_LITERAL }; + int64_t abs_i = (i < 0) ? -i : i; + const unsigned digits = fmax(1.0, ceil(log10((double)abs_i + 1))); + char* buf = (char*)calloc(digits + 2, 1); + SerdNode node = { (const uint8_t*)buf, 0, 0, 0, SERD_LITERAL }; // Point s to the end char* s = buf + digits - 1; |