mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-09-04 12:18:33 +02:00
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
This commit is contained in:
@@ -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__,
|
||||
|
Reference in New Issue
Block a user