diff --git a/xbmc/settings/dialogs/GUIDialogSettingsBase.cpp b/xbmc/settings/dialogs/GUIDialogSettingsBase.cpp index 50af6f9b59b80..1d878dbb2d580 100644 --- a/xbmc/settings/dialogs/GUIDialogSettingsBase.cpp +++ b/xbmc/settings/dialogs/GUIDialogSettingsBase.cpp @@ -466,17 +466,20 @@ void CGUIDialogSettingsBase::FreeControls() control->ClearAll(); } m_categories.clear(); - FreeSettingsControls(); -} -void CGUIDialogSettingsBase::DeleteControls() -{ + // If we created our own edit control instead of borrowing it then clean it up if (m_newOriginalEdit) { delete m_pOriginalEdit; - m_pOriginalEdit = NULL; + m_pOriginalEdit = nullptr; + m_newOriginalEdit = false; } + FreeSettingsControls(); +} + +void CGUIDialogSettingsBase::DeleteControls() +{ m_resetSetting.reset(); m_dummyCategory.reset(); }