From 5bff4bdd4a2877410b8e6daa070641fed1ab8ce1 Mon Sep 17 00:00:00 2001 From: Andreas Monzner Date: Wed, 10 Jan 2007 19:12:30 +0000 Subject: [PATCH] non critical fixes (better memory handling) --- lib/dvb/epgcache.cpp | 21 +++++++++++++-------- lib/dvb/epgcache.h | 4 ---- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/lib/dvb/epgcache.cpp b/lib/dvb/epgcache.cpp index 49b804b6..46311f60 100644 --- a/lib/dvb/epgcache.cpp +++ b/lib/dvb/epgcache.cpp @@ -516,10 +516,11 @@ void eEPGCache::sectionRead(const __u8 *data, int source, channel_data *channel) if ( tm_it_tmp->first == TM ) // just update eventdata { // exempt memory - delete ev_it->second; + eventData *tmp = ev_it->second; ev_it->second = tm_it_tmp->second = new eventData(eit_event, eit_event_size, source); FixOverlapping(servicemap, TM, duration, tm_it_tmp, service); + delete tmp; goto next; } else // event has new event begin time @@ -562,25 +563,29 @@ void eEPGCache::sectionRead(const __u8 *data, int source, channel_data *channel) #endif if (ev_erase_count > 0 && tm_erase_count > 0) // 2 different pairs have been removed { - // exempt memory - delete ev_it->second; - delete tm_it->second; + eventData *tmp1 = ev_it->second, + *tmp2 = tm_it->second; ev_it->second=evt; tm_it->second=evt; + // exempt memory + delete tmp1; + delete tmp2; } else if (ev_erase_count == 0 && tm_erase_count > 0) { - // exempt memory - delete ev_it->second; + eventData *tmp = ev_it->second; tm_it=prevTimeIt=servicemap.second.insert( prevTimeIt, std::pair( TM, evt ) ); ev_it->second=evt; + // exempt memory + delete tmp; } else if (ev_erase_count > 0 && tm_erase_count == 0) { - // exempt memory - delete tm_it->second; + eventData *tmp = tm_it->second; ev_it=prevEventIt=servicemap.first.insert( prevEventIt, std::pair( event_id, evt) ); tm_it->second=evt; + // exempt memory + delete tmp; } else // added new eventData { diff --git a/lib/dvb/epgcache.h b/lib/dvb/epgcache.h index 16274965..e5dd148b 100644 --- a/lib/dvb/epgcache.h +++ b/lib/dvb/epgcache.h @@ -218,10 +218,6 @@ public: flush, startChannel, leaveChannel, - pause, - restart, - updated, - isavail, quit, got_private_pid, timeChanged -- 2.30.2