From 8f704427b8633dfe06e254af638697cc2ba4f4b1 Mon Sep 17 00:00:00 2001 From: seife Date: Sun, 10 Apr 2011 22:21:42 +0000 Subject: [PATCH] sectionsd: use better event set for removeDupEvents() Use the set of events which is sorted by start time and service id intead of the one sorted by end time to iterate through the list of events. Fixes a mysterious crash on ppc. git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-experimental@1385 e54a6e83-5905-42d5-8d5c-058d10e6a962 --- src/sectionsd/sectionsd.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/sectionsd/sectionsd.cpp b/src/sectionsd/sectionsd.cpp index e261b38d0..e966c7a91 100644 --- a/src/sectionsd/sectionsd.cpp +++ b/src/sectionsd/sectionsd.cpp @@ -1211,16 +1211,16 @@ static void removeOldEvents(const long seconds) */ static void removeDupEvents(void) { - MySIeventsOrderFirstEndTimeServiceIDEventUniqueKey::iterator e1, e2, del; + MySIeventsOrderServiceUniqueKeyFirstStartTimeEventUniqueKey::iterator e1, e2, del; readLockEvents(); - e1 = mySIeventsOrderFirstEndTimeServiceIDEventUniqueKey.begin(); + e1 = mySIeventsOrderServiceUniqueKeyFirstStartTimeEventUniqueKey.begin(); - while ((e1 != mySIeventsOrderFirstEndTimeServiceIDEventUniqueKey.end()) && !messaging_zap_detected) + while ((e1 != mySIeventsOrderServiceUniqueKeyFirstStartTimeEventUniqueKey.end()) && !messaging_zap_detected) { e2 = e1; e1++; - if (e1 == mySIeventsOrderFirstEndTimeServiceIDEventUniqueKey.end()) + if (e1 == mySIeventsOrderServiceUniqueKeyFirstStartTimeEventUniqueKey.end()) break; /* check for the same service */ @@ -1238,14 +1238,14 @@ static void removeDupEvents(void) continue; } - del = mySIeventsOrderFirstEndTimeServiceIDEventUniqueKey.end(); + del = mySIeventsOrderServiceUniqueKeyFirstStartTimeEventUniqueKey.end(); if ((*e1)->table_id > (*e2)->table_id) del = e1; if ((*e1)->table_id < (*e2)->table_id) del = e2; /* can not happen. This check is pure paranoia :) */ - if (del == mySIeventsOrderFirstEndTimeServiceIDEventUniqueKey.end()) + if (del == mySIeventsOrderServiceUniqueKeyFirstStartTimeEventUniqueKey.end()) continue; xprintf("%s: removing event %llx.%02x '%s'\n", __func__,