From: Toni Wilen Date: Fri, 19 Feb 2016 19:07:17 +0000 (+0200) Subject: Zero all temp variables to prevent possible warm reset crashes. X-Git-Tag: 3300~74 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=92825c11bc1abe406bc464a73c588541155597c2;p=francis%2Fwinuae.git Zero all temp variables to prevent possible warm reset crashes. --- diff --git a/autoconf.cpp b/autoconf.cpp index ed09b6f7..66f174ae 100644 --- a/autoconf.cpp +++ b/autoconf.cpp @@ -218,8 +218,13 @@ static void REGPARAM2 rtarea_lput (uaecptr addr, uae_u32 value) void rtarea_reset(void) { - memset(rtarea_bank.baseaddr + RTAREA_TRAP_DATA, 0, RTAREA_TRAP_DATA_SLOT_SIZE * (RTAREA_TRAP_DATA_NUM + RTAREA_TRAP_DATA_SEND_NUM)); - memset(rtarea_bank.baseaddr + RTAREA_TRAP_STATUS, 0, RTAREA_TRAP_STATUS_SIZE * (RTAREA_TRAP_DATA_NUM + RTAREA_TRAP_DATA_SEND_NUM)); + uae_u8 *p = rtarea_bank.baseaddr; + if (p) { + memset(p + RTAREA_TRAP_DATA, 0, RTAREA_TRAP_DATA_SLOT_SIZE * (RTAREA_TRAP_DATA_NUM + RTAREA_TRAP_DATA_SEND_NUM)); + memset(p + RTAREA_TRAP_STATUS, 0, RTAREA_TRAP_STATUS_SIZE * (RTAREA_TRAP_DATA_NUM + RTAREA_TRAP_DATA_SEND_NUM)); + memset(p + RTAREA_HEARTBEAT, 0, 0x10000 - RTAREA_HEARTBEAT); + memset(p + RTAREA_VARIABLES, 0, RTAREA_VARIABLES_SIZE); + } trap_reset(); } diff --git a/include/autoconf.h b/include/autoconf.h index 5129337f..3fc10fc8 100644 --- a/include/autoconf.h +++ b/include/autoconf.h @@ -42,6 +42,8 @@ #define RTAREA_TRAP_STATUS_SIZE 8 #define RTAREA_TRAP_STATUS_SECOND 4 +#define RTAREA_VARIABLES 0x3F00 +#define RTAREA_VARIABLES_SIZE 0x100 #define RTAREA_SYSBASE 0x3FFC #define RTAREA_GFXBASE 0x3FF8 #define RTAREA_INTBASE 0x3FF4