From c7c3662ed2dbd717ab64d41f27a5553581e90ee7 Mon Sep 17 00:00:00 2001 From: rogerman Date: Tue, 24 Dec 2013 00:22:31 +0000 Subject: [PATCH] Slot-2: - Fix possible crash on init when using expansion memory. --- desmume/src/addons/slot2_expMemory.cpp | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/desmume/src/addons/slot2_expMemory.cpp b/desmume/src/addons/slot2_expMemory.cpp index 4ffbc8530..03008df18 100644 --- a/desmume/src/addons/slot2_expMemory.cpp +++ b/desmume/src/addons/slot2_expMemory.cpp @@ -39,6 +39,13 @@ private: u8 *expMemory; bool ext_ram_lock; public: + + Slot2_ExpansionPak() + { + expMemory = NULL; + ext_ram_lock = true; + } + virtual Slot2Info const* info() { static Slot2InfoSimple info("Memory Expansion Pak", "Official RAM expansion for Opera browser", 0x05); @@ -47,24 +54,18 @@ public: virtual void connect() { - if (expMemory) + if (expMemory == NULL) { - delete [] expMemory; - expMemory = NULL; + expMemory = new u8[EXPANSION_MEMORY_SIZE]; } - - expMemory = new u8 [EXPANSION_MEMORY_SIZE]; memset(expMemory, 0xFF, EXPANSION_MEMORY_SIZE); ext_ram_lock = true; } virtual void disconnect() { - if (expMemory) - { - delete [] expMemory; - expMemory = NULL; - } + delete[] expMemory; + expMemory = NULL; } virtual void writeByte(u8 PROCNUM, u32 addr, u8 val)