Skip to content

Commit

Permalink
CGUIDialogMediaFilter: properly delete settings data (don't delete a …
Browse files Browse the repository at this point in the history
…void*)
  • Loading branch information
Montellese committed Oct 9, 2012
1 parent 1ce0cf2 commit fd88147
Showing 1 changed file with 23 additions and 1 deletion.
24 changes: 23 additions & 1 deletion xbmc/dialogs/GUIDialogMediaFilter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -515,7 +515,29 @@ void CGUIDialogMediaFilter::Reset()

// delete all the setting's data
for (map<uint32_t, Filter>::iterator filter = m_filters.begin(); filter != m_filters.end(); filter++)
delete filter->second.data;
{
switch (filter->second.type)
{
case SettingInfo::STRING:
case SettingInfo::EDIT:
case SettingInfo::BUTTON:
delete (CStdString *)filter->second.data;
break;

case SettingInfo::CHECK:
delete (int *)filter->second.data;
break;

case SettingInfo::RANGE:
delete ((float **)filter->second.data)[0];
delete ((float **)filter->second.data)[1];
delete (float *)filter->second.data;
break;

default:
continue;
}
}

m_filters.clear();
}
Expand Down

0 comments on commit fd88147

Please sign in to comment.