From 753657bd367fbc0f9c315cda38168139d2502768 Mon Sep 17 00:00:00 2001 From: JugadorXEI Date: Fri, 1 Nov 2024 17:44:22 +0100 Subject: [PATCH] Comment out ITEM_LIST_SIZE, Fix CheckHeap crash on item roulette (re)alloc. Also change the default item cap to 32, since the free item roulette makes it go up to 30, avoiding a bunch of unneeded reallocs. --- src/d_player.h | 6 +++--- src/k_roulette.c | 6 +++--- src/p_saveg.cpp | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/d_player.h b/src/d_player.h index 9a4f42f9e..3178c76df 100644 --- a/src/d_player.h +++ b/src/d_player.h @@ -506,9 +506,9 @@ struct skybox_t { }; // player_t struct for item roulette variables -// Doing this the right way is causing problems. -// so FINE, it's a static length now. -#define ITEM_LIST_SIZE (NUMKARTRESULTS << 3) + +// In case of dynamic alloc failure, break glass: +// #define ITEM_LIST_SIZE (NUMKARTRESULTS << 3) typedef struct itemlist_t { diff --git a/src/k_roulette.c b/src/k_roulette.c index bac0b1e71..1850de449 100644 --- a/src/k_roulette.c +++ b/src/k_roulette.c @@ -737,11 +737,11 @@ static void K_InitRoulette(itemroulette_t *const roulette) #ifndef ITEM_LIST_SIZE if (roulette->itemList.items == NULL) { - roulette->itemList.cap = 8; + roulette->itemList.cap = 32; roulette->itemList.items = Z_Calloc( sizeof(SINT8) * roulette->itemList.cap, PU_STATIC, - &roulette->itemList.items + NULL ); if (roulette->itemList.items == NULL) @@ -844,7 +844,7 @@ void K_PushToRouletteItemList(itemroulette_t *const roulette, INT32 item) roulette->itemList.items, sizeof(SINT8) * roulette->itemList.cap, PU_STATIC, - &roulette->itemList.items + NULL ); if (roulette->itemList.items == NULL) diff --git a/src/p_saveg.cpp b/src/p_saveg.cpp index fe8f3045d..62c661e9b 100644 --- a/src/p_saveg.cpp +++ b/src/p_saveg.cpp @@ -1452,7 +1452,7 @@ static void P_NetUnArchivePlayers(savebuffer_t *save) players[i].itemRoulette.itemList.items = Z_Calloc( sizeof(SINT8) * players[i].itemRoulette.itemList.cap, PU_STATIC, - &players[i].itemRoulette.itemList.items + NULL ); } else @@ -1461,7 +1461,7 @@ static void P_NetUnArchivePlayers(savebuffer_t *save) players[i].itemRoulette.itemList.items, sizeof(SINT8) * players[i].itemRoulette.itemList.cap, PU_STATIC, - &players[i].itemRoulette.itemList.items + NULL ); }