From a109474d61b57d028d657d979916b08a6226f02a Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Mon, 14 Oct 2013 12:46:34 +0400 Subject: [PATCH] neutrino.cpp: call CEpgScan::handleMsg() in standart way, fixes memleak for events with data --- src/neutrino.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 14d7d71db..d8958ebb8 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -2327,7 +2327,6 @@ int CNeutrinoApp::handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data) /* update scan settings for manual scan to current channel */ CScanSetup::getInstance()->updateManualSettings(); - CEpgScan::getInstance()->handleMsg(msg, data); } if ((msg == NeutrinoMessages::EVT_TIMER)) { if(data == scrambled_timer) { @@ -2339,19 +2338,17 @@ int CNeutrinoApp::handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data) return messages_return::handled; } } - if ((msg == NeutrinoMessages::EVT_EIT_COMPLETE || msg == NeutrinoMessages::EVT_BACK_ZAP_COMPLETE)) { - CEpgScan::getInstance()->handleMsg(msg, data); - return messages_return::handled; - } res = res | g_RemoteControl->handleMsg(msg, data); res = res | g_InfoViewer->handleMsg(msg, data); res = res | channelList->handleMsg(msg, data); res = res | CRecordManager::getInstance()->handleMsg(msg, data); + res = res | CEpgScan::getInstance()->handleMsg(msg, data); if( res != messages_return::unhandled ) { - if( ( msg>= CRCInput::RC_WithData ) && ( msg< CRCInput::RC_WithData+ 0x10000000 ) ) + if( ( msg>= CRCInput::RC_WithData ) && ( msg< CRCInput::RC_WithData+ 0x10000000 ) ) { delete[] (unsigned char*) data; + } return( res & ( 0xFFFFFFFF - messages_return::unhandled ) ); }