diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 5c86cccf9..3a3e87d9f 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -129,7 +129,7 @@ bool autoshift = false; uint32_t scrambled_timer; t_channel_id standby_channel_id; -static CProgressBar *g_volscale; +//static CProgressBar *g_volscale; //NEW static pthread_t timer_thread; void * timerd_main_thread(void *data); @@ -1890,7 +1890,7 @@ TIMER_START(); int dx, dy; frameBuffer->getIconSize(NEUTRINO_ICON_VOLUME, &dx, &dy); - g_volscale = new CProgressBar(true, dy * 125 / 10, dy, 50, 100, 80, true); + //g_volscale = new CProgressBar(true, dy * 125 / 10, dy, 50, 100, 80, true); g_CamHandler = new CCAMMenuHandler(); g_CamHandler->init(); @@ -3067,28 +3067,82 @@ void CNeutrinoApp::ExitRun(const bool /*write_si*/, int retcode) } #endif } else { - if (g_RCInput != NULL) - delete g_RCInput; + delete g_RCInput; //fan speed if (g_info.has_fan) { int fspeed = 0; - CFanControlNotifier * funNotifier= new CFanControlNotifier(); - funNotifier->changeNotify(NONEXISTANT_LOCALE, (void *) &fspeed); - delete funNotifier; + CFanControlNotifier funNotifier; + funNotifier.changeNotify(NONEXISTANT_LOCALE, (void *) &fspeed); } //CVFD::getInstance()->ShowText(g_Locale->getText(LOCALE_MAINMENU_REBOOT)); stop_video(); +#ifdef EXIT_CLEANUP + INFO("cleanup..."); +printf("cleanup 10\n");fflush(stdout); + delete g_Sectionsd; g_Sectionsd = NULL; + delete g_Timerd; g_Timerd = NULL; + delete g_Zapit; g_Zapit = NULL; + delete g_RemoteControl; g_RemoteControl = NULL; -#if 0 /* FIXME this next hack to test, until we find real crash on exit reason */ - system("/etc/init.d/rcK"); - system("/bin/sync"); - system("/bin/umount -a"); +printf("cleanup 11\n");fflush(stdout); + delete g_fontRenderer; g_fontRenderer = NULL; +printf("cleanup 12\n");fflush(stdout); + delete g_PicViewer; g_PicViewer = NULL; +printf("cleanup 13\n");fflush(stdout); + delete g_PluginList; g_PluginList = NULL; +printf("cleanup 16\n");fflush(stdout); + delete g_CamHandler; g_CamHandler = NULL; +printf("cleanup 17\n");fflush(stdout); + delete g_volume; g_volume = NULL; +printf("cleanup 18\n");fflush(stdout); + delete g_EpgData; g_EpgData = NULL; +printf("cleanup 19\n");fflush(stdout); + delete g_InfoViewer; g_InfoViewer = NULL; +printf("cleanup 11\n");fflush(stdout); + delete g_EventList; g_EventList = NULL; +printf("cleanup 12\n");fflush(stdout); + delete g_Locale; g_Locale = NULL; + delete g_videoSettings; g_videoSettings = NULL; + delete g_Radiotext; g_Radiotext = NULL; - reboot(LINUX_REBOOT_CMD_RESTART); -#else - //_exit(retcode); - exit(retcode); +printf("cleanup 13\n");fflush(stdout); + delete colorSetupNotifier; colorSetupNotifier = NULL; + delete audioSetupNotifier; audioSetupNotifier = NULL; + delete MoviePluginChanger; MoviePluginChanger = NULL; +printf("cleanup 14\n");fflush(stdout); + + delete TVbouquetList; TVbouquetList = NULL; + delete RADIObouquetList; RADIObouquetList = NULL; + + delete TVfavList; TVfavList = NULL; + delete RADIOfavList; RADIOfavList = NULL; + + delete TVchannelList; TVchannelList = NULL; + delete RADIOchannelList; RADIOchannelList = NULL; + delete TVallList; TVallList = NULL; + delete RADIOallList; RADIOallList = NULL; + delete TVsatList; TVsatList = NULL; + delete RADIOsatList; RADIOsatList = NULL; + +printf("cleanup 1\n");fflush(stdout); + for (int i = 0; i < FONT_TYPE_COUNT; i++) { + delete g_Font[i]; + g_Font[i] = NULL; + } +printf("cleanup 2\n");fflush(stdout); + delete g_SignalFont; g_SignalFont = NULL; +printf("cleanup 3\n");fflush(stdout); + configfile.clear(); + +printf("cleanup 4\n");fflush(stdout); + delete CZapit::getInstance(); +printf("cleanup 5\n");fflush(stdout); + delete CEitManager::getInstance(); +printf("cleanup 6\n");fflush(stdout); + delete CVFD::getInstance(); + malloc_stats(); #endif + //_exit(retcode); exit(retcode); } }