diff options
| author | Syndamia <kamen@syndamia.com> | 2026-04-21 21:43:24 +0300 |
|---|---|---|
| committer | Syndamia <kamen@syndamia.com> | 2026-04-21 21:43:24 +0300 |
| commit | 5f268351d1de3218ffc0f6437595d11df7db616d (patch) | |
| tree | ed03f74ec71c3ed6e5b6a1458bab722fc5052577 /Array.c | |
| parent | f29be3f9e3fc2da6488beadb059b1eee6db60603 (diff) | |
| download | foollib-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.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -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); |
