aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-01-18 01:33:57 +0000
committerDavid Robillard <d@drobilla.net>2012-01-18 01:33:57 +0000
commit8778ef5322c33b4aa656db8a810010df19b70235 (patch)
treed20f4c5e27e02ec4c3801705bc16a75ab760b9d2
parent79efd9f6e30bec80020ab578940d03a228a1d024 (diff)
downloadserd-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
-rw-r--r--serd/serd.h2
-rw-r--r--src/node.c10
-rw-r--r--src/uri.c2
3 files changed, 7 insertions, 7 deletions
diff --git a/serd/serd.h b/serd/serd.h
index 06e0af43..c69d0eaa 100644
--- a/serd/serd.h
+++ b/serd/serd.h
@@ -429,7 +429,7 @@ 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);
/**
Create a node by serialising @c buf into an xsd:base64Binary string.
diff --git a/src/node.c b/src/node.c
index a5603d47..73976b44 100644
--- a/src/node.c
+++ b/src/node.c
@@ -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;
diff --git a/src/uri.c b/src/uri.c
index 58609ba4..d329c4b5 100644
--- a/src/uri.c
+++ b/src/uri.c
@@ -28,7 +28,7 @@ is_windows_path(const uint8_t* path)
return is_alpha(path[0]) && (path[1] == ':' || path[1] == '|')
&& (path[2] == '/' || path[2] == '\\');
}
-
+
SERD_API
const uint8_t*
serd_uri_to_path(const uint8_t* uri)