X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/0c59a4279f93f08fe95fca5f2e55f3e025f0cceb..37b38cb05fc6bc4993f852a78bdba93c7627cf5b:/lib/dvb/dvbtime.cpp diff --git a/lib/dvb/dvbtime.cpp b/lib/dvb/dvbtime.cpp index 4c5911c9..c4335795 100644 --- a/lib/dvb/dvbtime.cpp +++ b/lib/dvb/dvbtime.cpp @@ -169,8 +169,6 @@ eDVBLocalTimeHandler::eDVBLocalTimeHandler() eDVBLocalTimeHandler::~eDVBLocalTimeHandler() { instance=0; - for (std::map::iterator it=m_knownChannels.begin(); it != m_knownChannels.end(); ++it) - delete it->second.tdt; if (ready()) { eDebug("set RTC to previous valid time"); @@ -396,10 +394,10 @@ void eDVBLocalTimeHandler::updateTime( time_t tp_time, eDVBChannel *chan, int up m_knownChannels.find(chan); if ( it != m_knownChannels.end() ) { - TDT *prev_tdt = it->second.tdt; - it->second.tdt = new TDT(chan, prev_tdt->getUpdateCount()); + int updateCount = it->second.tdt->getUpdateCount(); + it->second.tdt = 0; + it->second.tdt = new TDT(chan, updateCount); it->second.tdt->startTimer(60*60*1000); // restart TDT for this transponder in 60min - delete prev_tdt; } } } @@ -437,7 +435,6 @@ void eDVBLocalTimeHandler::DVBChannelStateChanged(iDVBChannel *chan) break; case iDVBChannel::state_release: eDebug("[eDVBLocalTimerHandler] remove channel %p", chan); - delete it->second.tdt; m_knownChannels.erase(it); break; default: // ignore all other events