Browse Source

Remove dependence on fmax() to avoid portability issues.

git-svn-id: http://svn.drobilla.net/serd/trunk@476 490d8e77-9747-427b-9fa3-0b8f29cee8a0
zrythm_meson
David Robillard 8 years ago
parent
commit
164337b78f
  1. 6
      NEWS
  2. 11
      src/node.c
  3. 8
      src/serd_internal.h
  4. 8
      wscript

6
NEWS

@ -1,3 +1,9 @@ @@ -1,3 +1,9 @@
serd (0.21.0) unstable;
* Remove dependence on fmax() to avoid portability issues
-- David Robillard <d@drobilla.net> Fri, 03 Oct 2014 13:08:29 -0400
serd (0.20.0) stable;
* Support new RDF 1.1 Turtle

11
src/node.c

@ -216,6 +216,13 @@ serd_node_new_uri(const SerdURI* uri, const SerdURI* base, SerdURI* out) @@ -216,6 +216,13 @@ serd_node_new_uri(const SerdURI* uri, const SerdURI* base, SerdURI* out)
return node;
}
static inline unsigned
serd_digits(double abs)
{
const double lg = ceil(log10(abs + 1.0));
return lg < 1.0 ? 1U : (unsigned)lg;
}
SERD_API
SerdNode
serd_node_new_decimal(double d, unsigned frac_digits)
@ -225,7 +232,7 @@ serd_node_new_decimal(double d, unsigned frac_digits) @@ -225,7 +232,7 @@ serd_node_new_decimal(double d, unsigned frac_digits)
}
const double abs_d = fabs(d);
const unsigned int_digits = (unsigned)fmax(1.0, ceil(log10(abs_d + 1)));
const unsigned int_digits = serd_digits(abs_d);
char* buf = (char*)calloc(int_digits + frac_digits + 3, 1);
SerdNode node = { (const uint8_t*)buf, 0, 0, 0, SERD_LITERAL };
const double int_part = floor(abs_d);
@ -276,7 +283,7 @@ SerdNode @@ -276,7 +283,7 @@ SerdNode
serd_node_new_integer(int64_t i)
{
int64_t abs_i = (i < 0) ? -i : i;
const unsigned digits = fmax(1.0, ceil(log10((double)abs_i + 1)));
const unsigned digits = serd_digits(abs_i);
char* buf = (char*)calloc(digits + 2, 1);
SerdNode node = { (const uint8_t*)buf, 0, 0, 0, SERD_LITERAL };

8
src/serd_internal.h

@ -38,14 +38,6 @@ @@ -38,14 +38,6 @@
# define MIN(a, b) (((a) < (b)) ? (a) : (b))
#endif
#ifndef HAVE_FMAX
static inline double
fmax(double a, double b)
{
return (a < b) ? b : a;
}
#endif
/* File and Buffer Utilities */
static inline FILE*

8
wscript

@ -11,7 +11,7 @@ import waflib.extras.autowaf as autowaf @@ -11,7 +11,7 @@ import waflib.extras.autowaf as autowaf
# major increment <=> incompatible changes
# minor increment <=> compatible changes (additions)
# micro increment <=> no interface changes
SERD_VERSION = '0.20.0'
SERD_VERSION = '0.21.0'
SERD_MAJOR_VERSION = '0'
# Mandatory waf variables
@ -67,12 +67,6 @@ def configure(conf): @@ -67,12 +67,6 @@ def configure(conf):
define_name = 'HAVE_GCOV',
mandatory = False)
conf.check(function_name = 'fmax',
header_name = 'math.h',
define_name = 'HAVE_FMAX',
lib = ['m'],
mandatory = False)
if not Options.options.no_posix:
conf.check(function_name = 'posix_memalign',
header_name = 'stdlib.h',

Loading…
Cancel
Save