From ee66f1e774efc94f212211fba60fab54ddbc026c Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Fri, 20 Nov 2015 00:07:05 -0800 Subject: [PATCH] Make vector.h compile when included by C++, w/o clang extensions --- src/runtime/vector.h | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/src/runtime/vector.h b/src/runtime/vector.h index 434ddefe..ed09af33 100644 --- a/src/runtime/vector.h +++ b/src/runtime/vector.h @@ -17,12 +17,12 @@ typedef struct { } Vector; static inline Vector vector_new(size_t element_size, size_t capacity) { - return (Vector){ - .contents = malloc(capacity * element_size), - .size = 0, - .capacity = capacity, - .element_size = element_size, - }; + Vector result; + result.contents = malloc(capacity * element_size); + result.size = 0; + result.capacity = capacity; + result.element_size = element_size; + return result; } static inline void vector_delete(Vector *self) { @@ -79,13 +79,10 @@ static inline void vector_reverse(Vector *self) { } static inline Vector vector_copy(Vector *self) { - return (Vector){ - .contents = memcpy(malloc(self->capacity * self->element_size), - self->contents, self->size * self->element_size), - .size = self->size, - .capacity = self->capacity, - .element_size = self->element_size, - }; + Vector copy = *self; + copy.contents = memcpy(malloc(self->capacity * self->element_size), + self->contents, self->size * self->element_size); + return copy; } #ifdef __cplusplus