aboutsummaryrefslogtreecommitdiff
path: root/Array.c
diff options
context:
space:
mode:
authorSyndamia <kamen@syndamia.com>2026-04-21 21:43:24 +0300
committerSyndamia <kamen@syndamia.com>2026-04-21 21:43:24 +0300
commit5f268351d1de3218ffc0f6437595d11df7db616d (patch)
treeed03f74ec71c3ed6e5b6a1458bab722fc5052577 /Array.c
parentf29be3f9e3fc2da6488beadb059b1eee6db60603 (diff)
downloadfoollib-5f268351d1de3218ffc0f6437595d11df7db616d.tar
foollib-5f268351d1de3218ffc0f6437595d11df7db616d.tar.gz
foollib-5f268351d1de3218ffc0f6437595d11df7db616d.zip
fix: Do not produce side effects on failed resize
Diffstat (limited to 'Array.c')
-rw-r--r--Array.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/Array.c b/Array.c
index 60dc82d..6be8c1a 100644
--- a/Array.c
+++ b/Array.c
@@ -62,7 +62,9 @@ A_push(Array arr, void *value) {
if (am->count >= am->length) {
if (!B_resizeable(am->b, arr))
return R_OutOfBounds;
- RETURN_NOTOK(B_resize(am->b, sizeof(*am) + am->element_size * (am->length <<= 1)));
+
+ RETURN_NOTOK(B_resize(am->b, sizeof(*am) + am->element_size * (am->length << 1)));
+ am->length <<= 1;
}
memcpy(arr + am->count++ * am->element_size, value, am->element_size);