mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2025-01-03 14:11:10 +00:00
Prevent crashes and hangs
This commit is contained in:
parent
093754ae1b
commit
8129ab7665
6 changed files with 10 additions and 5 deletions
|
@ -80,6 +80,7 @@ override_allowed_functions = {
|
|||
override_disallowed_functions = {
|
||||
"src/audio/external.h": [ " func_" ],
|
||||
"src/engine/math_util.h": [ "atan2s", "atan2f", "vec3s_sub" ],
|
||||
"src/engine/surface_load.h", [ "alloc_surface_poools" ],
|
||||
"src/engine/surface_collision.h": [ " debug_", "f32_find_wall_collision" ],
|
||||
"src/game/mario_actions_airborne.c": [ "^[us]32 act_.*" ],
|
||||
"src/game/mario_actions_automatic.c": [ "^[us]32 act_.*" ],
|
||||
|
|
|
@ -529,6 +529,9 @@ void alloc_surface_pools(void) {
|
|||
gSurfaceNodesAllocated = 0;
|
||||
gSurfacesAllocated = 0;
|
||||
|
||||
clear_static_surfaces();
|
||||
clear_dynamic_surfaces();
|
||||
|
||||
gCCMEnteredSlide = 0;
|
||||
reset_red_coins_collected();
|
||||
}
|
||||
|
|
|
@ -2002,11 +2002,6 @@ static u8 prevent_hang(u32 hangPreventionActions[], u8* hangPreventionIndex) {
|
|||
|
||||
logfile_close(LFT_HANG);
|
||||
|
||||
// force the crash in debug mode
|
||||
#ifdef DEBUG
|
||||
SOFT_ASSERT_RETURN(hangPreventionIndex == 0, TRUE);
|
||||
#endif
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
|
@ -628,6 +628,9 @@ void anim_and_audio_for_walk(struct MarioState *m) {
|
|||
val0C = FALSE;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
val0C = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@ void* dynamic_pool_alloc(struct DynamicPool *pool, u32 size) {
|
|||
struct DynamicPoolNode* node = calloc(1, sizeof(struct DynamicPoolNode));
|
||||
node->ptr = calloc(1, size);
|
||||
node->prev = pool->tail;
|
||||
node->size = size;
|
||||
|
||||
pool->tail = node;
|
||||
pool->usedSpace += size;
|
||||
|
@ -46,6 +47,7 @@ void dynamic_pool_free(struct DynamicPool *pool, void* ptr) {
|
|||
} else {
|
||||
next->prev = prev;
|
||||
}
|
||||
pool->usedSpace -= node->size;
|
||||
free(node->ptr);
|
||||
free(node);
|
||||
return;
|
||||
|
|
|
@ -20,6 +20,7 @@ struct DynamicPool
|
|||
struct DynamicPoolNode
|
||||
{
|
||||
void* ptr;
|
||||
u32 size;
|
||||
struct DynamicPoolNode* prev;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue