diff options
author | David Robillard <d@drobilla.net> | 2016-07-07 23:50:39 -0400 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2018-05-27 18:18:55 +0200 |
commit | 8ac55f3c07f72548435d1e55594ccb5094e25098 (patch) | |
tree | 677efb09ce10d7c927e8c9aa2d364b1866a005d7 /src | |
parent | fe92672ee07da411d4aed891f8475c5a949c93e4 (diff) | |
download | serd-8ac55f3c07f72548435d1e55594ccb5094e25098.tar.gz serd-8ac55f3c07f72548435d1e55594ccb5094e25098.tar.bz2 serd-8ac55f3c07f72548435d1e55594ccb5094e25098.zip |
Make serd_strtod API const-correct
This is an API breakage, but a minor one (particularly since NULL is
allowed) that avoids the flaw in the C API.
Diffstat (limited to 'src')
-rw-r--r-- | src/reader.c | 2 | ||||
-rw-r--r-- | src/reader.h | 2 | ||||
-rw-r--r-- | src/serd_internal.h | 2 | ||||
-rw-r--r-- | src/string.c | 6 |
4 files changed, 6 insertions, 6 deletions
diff --git a/src/reader.c b/src/reader.c index 142622e4..7e2fa4ec 100644 --- a/src/reader.c +++ b/src/reader.c @@ -76,7 +76,7 @@ Ref push_node_padded(SerdReader* reader, size_t maxlen, SerdType type, const char* str, size_t n_bytes) { - char* mem = (char*)serd_stack_push_aligned( + void* mem = serd_stack_push_aligned( &reader->stack, sizeof(SerdNode) + maxlen + 1, sizeof(SerdNode)); SerdNode* const node = (SerdNode*)mem; diff --git a/src/reader.h b/src/reader.h index 18b587c8..d5c8595b 100644 --- a/src/reader.h +++ b/src/reader.h @@ -66,7 +66,7 @@ static inline SerdStatus push_byte(SerdReader* reader, Ref ref, const uint8_t c) { SERD_STACK_ASSERT_TOP(reader, ref); - char* const s = serd_stack_push(&reader->stack, 1); + char* const s = (char*)serd_stack_push(&reader->stack, 1); SerdNode* const node = (SerdNode*)(reader->stack.buf + ref); ++node->n_bytes; *(s - 1) = c; diff --git a/src/serd_internal.h b/src/serd_internal.h index 70ab1e97..c666dfa6 100644 --- a/src/serd_internal.h +++ b/src/serd_internal.h @@ -165,7 +165,7 @@ serd_stack_free(SerdStack* stack) stack->size = 0; } -static inline char* +static inline void* serd_stack_push(SerdStack* stack, size_t n_bytes) { const size_t new_size = stack->size + n_bytes; diff --git a/src/string.c b/src/string.c index 81c6ae07..238c41a9 100644 --- a/src/string.c +++ b/src/string.c @@ -92,7 +92,7 @@ read_sign(const char** sptr) SERD_API double -serd_strtod(const char* str, char** endptr) +serd_strtod(const char* str, size_t* end) { double result = 0.0; @@ -128,8 +128,8 @@ serd_strtod(const char* str, char** endptr) result *= pow(10, expt * expt_sign); } - if (endptr) { - *endptr = (char*)s; + if (end) { + *end = s - str; } return result * sign; |