diff --git a/source/CardManager.cpp b/source/CardManager.cpp index d71e31b1..2cb25465 100644 --- a/source/CardManager.cpp +++ b/source/CardManager.cpp @@ -120,6 +120,12 @@ void CardManager::RemoveInternal(UINT slot) m_slot[slot] = NULL; } +void CardManager::RemoveAuxInternal() +{ + delete m_aux; + m_aux = NULL; +} + void CardManager::Remove(UINT slot) { RemoveInternal(slot); @@ -131,6 +137,8 @@ void CardManager::InsertAux(SS_CARDTYPE type) if (type == CT_Empty) return RemoveAux(); + RemoveAuxInternal(); + switch (type) { case CT_80Col: @@ -146,10 +154,13 @@ void CardManager::InsertAux(SS_CARDTYPE type) _ASSERT(0); break; } + + // for consistency m_aux must never be NULL + _ASSERT(m_aux != NULL); } void CardManager::RemoveAux(void) { - delete m_aux; + RemoveAuxInternal(); m_aux = new EmptyCard; } diff --git a/source/CardManager.h b/source/CardManager.h index d7807d1d..367cafae 100644 --- a/source/CardManager.h +++ b/source/CardManager.h @@ -24,8 +24,8 @@ public: ~CardManager(void) { for (UINT i=0; i