Browse Source

Fix incorrect capacity adjustment in Oevent list

Was capped at 16 instead of properly growing as it should have.
master
cancel 6 years ago
parent
commit
2b722c0f67
  1. 5
      bank.c

5
bank.c

@ -20,7 +20,10 @@ void oevent_list_copy(Oevent_list const* src, Oevent_list* dest) {
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;
}

Loading…
Cancel
Save