Don't close popup on page revive + some null checks

This commit is contained in:
Arceveti
2024-03-15 03:01:45 -07:00
parent 4d2f3ba339
commit 7fcc7fcdd3
3 changed files with 9 additions and 5 deletions

View File

@@ -291,8 +291,6 @@ void cs_update_input(void) {
(gCSCompositeController->buttonPressed & START_BUTTON)
) {
gCSCompositeController->buttonPressed &= !(A_BUTTON | B_BUTTON);
// Attempt to reopen crashed page.
cs_open_popup(CS_POPUP_NONE);
page->flags.crashed = FALSE;
if (page->initFunc != NULL) {
page->initFunc();

View File

@@ -423,8 +423,12 @@ void cs_print_symbol_name_impl(u32 x, u32 y, u32 maxWidth, RGBA32 color, const c
* @param[in] symbol The symbol pointer.
*/
void cs_print_symbol_name(u32 x, u32 y, u32 maxWidth, const MapSymbol* symbol) {
if (symbol == NULL) {
// "UNKNOWN"
cs_print(x, y, STR_COLOR_PREFIX"UNKNOWN", COLOR_RGBA32_CRASH_UNKNOWN);
}
cs_print_symbol_name_impl(x, y, maxWidth,
(((symbol != NULL) && is_in_code_segment(symbol->addr)) ? COLOR_RGBA32_CRASH_FUNCTION_NAME : COLOR_RGBA32_CRASH_VARIABLE),
(is_in_code_segment(symbol->addr) ? COLOR_RGBA32_CRASH_FUNCTION_NAME : COLOR_RGBA32_CRASH_VARIABLE),
get_map_symbol_name(symbol)
);
}

View File

@@ -86,13 +86,15 @@ void cs_print_crashed_thread(u32 x, u32 y) {
#ifdef INCLUDE_DEBUG_MAP
void cs_print_func(u32 x, u32 y, __OSThreadContext* tc) {
const MapSymbol* symbol = get_map_symbol(GET_EPC(tc), SYMBOL_SEARCH_BACKWARD);
// "FUNC: [function name]"
size_t charX = cs_print(x, y,
STR_COLOR_PREFIX"FUNC:\t",
COLOR_RGBA32_CRASH_AT
);
cs_print_symbol_name(TEXT_X(charX), y, (CRASH_SCREEN_NUM_CHARS_X - charX), symbol);
const MapSymbol* symbol = get_map_symbol(GET_EPC(tc), SYMBOL_SEARCH_BACKWARD);
if (symbol != NULL) {
cs_print_symbol_name(TEXT_X(charX), y, (CRASH_SCREEN_NUM_CHARS_X - charX), symbol);
}
}
#endif // INCLUDE_DEBUG_MAP