summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitar Petrovski <dimeptr@gmail.com>2012-06-04 00:15:36 +0200
committerDimitar Petrovski <dimeptr@gmail.com>2012-06-04 00:15:36 +0200
commit7335a91779b6bef557cef1a4697f27b85a0627c0 (patch)
tree3b2b6c7b89ea1b3252659ee0c9808ff8d9517ccf
parent5e7d26da37cee78f6cb943ba10bae6455ee1e73b (diff)
downloadvdr-plugin-eepg-7335a91779b6bef557cef1a4697f27b85a0627c0.tar.gz
vdr-plugin-eepg-7335a91779b6bef557cef1a4697f27b85a0627c0.tar.bz2
remove empty list from map
-rw-r--r--equivhandler.c4
-rw-r--r--util.c31
2 files changed, 18 insertions, 17 deletions
diff --git a/equivhandler.c b/equivhandler.c
index 2c1b424..a742150 100644
--- a/equivhandler.c
+++ b/equivhandler.c
@@ -166,11 +166,11 @@ void cEquivHandler::updateEquivalent(tChannelID channelID, cEvent *pEvent){
multimap<string,string>::iterator it;
pair<multimap<string,string>::iterator,multimap<string,string>::iterator> ret;
- LogD(2, prep("Start updateEquivalent %s"), *channelID.ToString());
+ LogD(3, prep("Start updateEquivalent %s"), *channelID.ToString());
ret = equiChanMap.equal_range(*channelID.ToString());
for (it=ret.first; it!=ret.second; ++it) {
- LogD(2, prep("equivalent channel exists"));
+ LogD(3, prep("equivalent channel exists"));
tChannelID equChannelID (tChannelID::FromString((*it).second.c_str()));
cEvent* newEvent = new cEvent (pEvent->EventID());
cloneEvent(pEvent, newEvent);
diff --git a/util.c b/util.c
index e398eca..076401f 100644
--- a/util.c
+++ b/util.c
@@ -198,22 +198,23 @@ void cAddEventThread::Action(void)
// list->Del(e);
// }
std::map<tChannelID,cList<cEvent *>*,tChannelIDCompare>::iterator it;
- if (schedules) {
- for ( it=map_list->begin() ; it != map_list->end(); it++ ) {
- cSchedule *schedule = (cSchedule *)schedules->GetSchedule(Channels.GetByChannelID((*it).first), true);
- while (schedules && ((*it).second->First()) != NULL) {
- cEvent* event = *(*it).second->First();
-
- cEvent *pEqvEvent = (cEvent *) schedule->GetEvent (event->EventID(), event->StartTime());
- if (pEqvEvent)
- schedule->DelEvent(pEqvEvent);
-
- schedule->AddEvent(event);
- (*it).second->Del(event);
- }
- EpgHandlers.SortSchedule(schedule);
-
+ it=map_list->begin();
+ while (schedules && it != map_list->end()) {
+ cSchedule *schedule = (cSchedule *)schedules->GetSchedule(Channels.GetByChannelID((*it).first), true);
+ while (((*it).second->First()) != NULL) {
+ cEvent* event = *(*it).second->First();
+
+ cEvent *pEqvEvent = (cEvent *) schedule->GetEvent (event->EventID(), event->StartTime());
+ if (pEqvEvent)
+ schedule->DelEvent(pEqvEvent);
+
+ schedule->AddEvent(event);
+ (*it).second->Del(event);
}
+ EpgHandlers.SortSchedule(schedule);
+ delete (*it).second;
+ map_list->erase(it++);
+
}
Unlock();
cCondWait::SleepMs(10);