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


Origin commit data
------------------
Branch: ni/coolstream
Commit: 8f704427b8
Author: Stefan Seyfried <seife@tuxbox-git.slipkontur.de>
Date: 2011-04-11 (Mon, 11 Apr 2011)



------------------
This commit was generated by Migit
This commit is contained in:
Stefan Seyfried
2011-04-10 22:21:42 +00:00
parent 6c07a3f2a7
commit 0cddc37cfa

View File

@@ -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__,