ref: 2b722c0f67545d6a94f12d1bc132509d46937aaf
parent: fd0c4b9b42bfd84b791b1b61d87d1382e5e1cc40
author: cancel <cancel@cancel.fm>
date: Fri Sep 13 05:14:00 EDT 2019
Fix incorrect capacity adjustment in Oevent list Was capped at 16 instead of properly growing as it should have.
--- a/bank.c
+++ b/bank.c
@@ -20,7 +20,10 @@
Oevent* oevent_list_alloc_item(Oevent_list* olist) {
Usz count = olist->count;
if (olist->capacity == count) {
- Usz capacity = count < 16 ? 16 : orca_round_up_power2(count);
+ // Note: no overflow check, but you're probably out of memory if this
+ // happens anyway. Like other uses of realloc in orca, we also don't check
+ // for a failed allocation.
+ Usz capacity = count < 16 ? 16 : orca_round_up_power2(count + 1);
olist->buffer = realloc(olist->buffer, capacity * sizeof(Oevent));
olist->capacity = capacity;
}