From 6c342ffdeee5353ecf78493c41ee23ef79cbd940 Mon Sep 17 00:00:00 2001 From: Tyge Lovset Date: Wed, 6 Oct 2021 07:55:07 +0200 Subject: Remove side-effects from i_valdel() invocations in case it's a macro func. --- include/stc/cdeq.h | 6 +++--- include/stc/csmap.h | 2 +- include/stc/cvec.h | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) (limited to 'include') diff --git a/include/stc/cdeq.h b/include/stc/cdeq.h index 41f8cea8..deff8965 100644 --- a/include/stc/cdeq.h +++ b/include/stc/cdeq.h @@ -74,7 +74,7 @@ STC_INLINE void cx_memb(_copy)(Self *self, Self other) { STC_INLINE cx_value_t* cx_memb(_emplace_back)(Self* self, i_valraw raw) { return cx_memb(_push_back)(self, i_valfrom(raw)); } STC_INLINE void cx_memb(_pop_front)(Self* self) - { i_valdel(self->data++); --cdeq_rep_(self)->size; } + { i_valdel(self->data); ++self->data; --cdeq_rep_(self)->size; } STC_INLINE cx_value_t* cx_memb(_back)(const Self* self) { return self->data + cdeq_rep_(self)->size - 1; } STC_INLINE cx_value_t* cx_memb(_front)(const Self* self) { return self->data; } @@ -106,7 +106,7 @@ STC_INLINE cx_value_t* cx_memb(_emplace_front)(Self* self, i_valraw raw) { } STC_INLINE void cx_memb(_pop_back)(Self* self) { - i_valdel(&self->data[--cdeq_rep_(self)->size]); + size_t i = --cdeq_rep_(self)->size; i_valdel(&self->data[i]); } STC_INLINE cx_value_t* cx_memb(_at)(const Self* self, size_t idx) { @@ -337,7 +337,7 @@ cx_memb(_erase_range_p)(Self* self, cx_value_t* p1, cx_value_t* p2) { size_t n = p2 - p1; if (n > 0) { cx_value_t* p = p1, *end = self->data + cdeq_rep_(self)->size; - while (p != p2) i_valdel(p++); + while (p != p2) i_valdel(p), ++p; if (p1 == self->data) self->data += n; else memmove(p1, p2, (end - p2) * sizeof(i_val)); cdeq_rep_(self)->size -= n; diff --git a/include/stc/csmap.h b/include/stc/csmap.h index e6838e22..3d9a935a 100644 --- a/include/stc/csmap.h +++ b/include/stc/csmap.h @@ -269,7 +269,7 @@ cx_MAP_ONLY( cx_memb(_insert_or_assign)(Self* self, i_key key, i_val mapped) { cx_result_t res = cx_memb(_insert_entry_)(self, i_keyto(&key)); if (res.inserted) res.ref->first = key; - else {i_keydel(&key); i_valdel(&res.ref->second); } + else { i_keydel(&key); i_valdel(&res.ref->second); } res.ref->second = mapped; return res; } diff --git a/include/stc/cvec.h b/include/stc/cvec.h index 27aae8c3..06577cde 100644 --- a/include/stc/cvec.h +++ b/include/stc/cvec.h @@ -108,7 +108,7 @@ STC_INLINE cx_value_t* cx_memb(_back)(const Self* self) STC_INLINE cx_value_t* cx_memb(_emplace_back)(Self* self, i_valraw raw) { return cx_memb(_push_back)(self, i_valfrom(raw)); } STC_INLINE void cx_memb(_pop_back)(Self* self) - { i_valdel(&self->data[--cvec_rep_(self)->size]); } + { size_t i = --cvec_rep_(self)->size; i_valdel(&self->data[i]); } STC_INLINE cx_iter_t cx_memb(_begin)(const Self* self) { return c_make(cx_iter_t){self->data}; } STC_INLINE cx_iter_t cx_memb(_end)(const Self* self) @@ -270,7 +270,7 @@ cx_memb(_resize)(Self* self, size_t len, i_val null_val) { cx_memb(_reserve)(self, len); struct cvec_rep* rep = cvec_rep_(self); size_t i, n = rep->size; - for (i = len; i < n; ++i) i_valdel(self->data + i); + for (i = len; i < n; ++i) i_valdel(&self->data[i]); for (i = n; i < len; ++i) self->data[i] = null_val; if (rep->cap) rep->size = len; } @@ -328,7 +328,7 @@ cx_memb(_erase_range_p)(Self* self, cx_value_t* p1, cx_value_t* p2) { intptr_t len = p2 - p1; if (len > 0) { cx_value_t* p = p1, *end = self->data + cvec_rep_(self)->size; - while (p != p2) i_valdel(p++); + while (p != p2) i_valdel(p), ++p; memmove(p1, p2, (end - p2) * sizeof(i_val)); cvec_rep_(self)->size -= len; } -- cgit v1.2.3