fixed - mem leaks in CPeripherals. map entries are not automatically deleted when...
authorLars Op den Kamp <lars@opdenkamp.eu>
Sat, 31 Dec 2011 01:04:33 +0000 (02:04 +0100)
committerLars Op den Kamp <lars@opdenkamp.eu>
Sat, 31 Dec 2011 01:04:33 +0000 (02:04 +0100)
xbmc/peripherals/Peripherals.cpp

index 3866165..3868cc7 100644 (file)
@@ -105,7 +105,12 @@ void CPeripherals::Clear(void)
 
   /* delete mappings */
   for (unsigned int iMappingPtr = 0; iMappingPtr < m_mappings.size(); iMappingPtr++)
+  {
+    map<CStdString, CSetting *> settings = m_mappings.at(iMappingPtr).m_settings;
+    for (map<CStdString, CSetting *>::iterator itr = settings.begin(); itr != settings.end(); itr++)
+      delete itr->second;
     m_mappings.at(iMappingPtr).m_settings.clear();
+  }
   m_mappings.clear();
 
   /* reset class state */