g_infoManager.Clear();
- g_SkinInfo.reset();
+// The g_SkinInfo boost shared_ptr ought to be reset here
+// but there are too many places it's used without checking for NULL
+// and as a result a race condition on exit can cause a crash.
}
bool CApplication::LoadUserWindows()
#include "guilib/Resolution.h"
#include "addons/IAddon.h"
#include "utils/Observer.h"
+#include "utils/GlobalsHandling.h"
class TiXmlNode;
class TiXmlElement;
void LoadFromXML(TiXmlElement *pRootElement, mapIter &it, bool advanced = false);
};
-extern CGUISettings g_guiSettings;
+XBMC_GLOBAL_REF(CGUISettings, g_guiSettings);
+#define g_guiSettings XBMC_GLOBAL_USE(CGUISettings)