diff options
author | Timo Eskola <timo@tolleri.net> | 2018-09-06 10:33:40 +0300 |
---|---|---|
committer | Timo Eskola <timo@tolleri.net> | 2018-09-06 10:33:40 +0300 |
commit | 169e1700feef224417172ee48354fdd7c0f8374a (patch) | |
tree | 37c72ddb03b509c29acde2380db00d234414e0b4 /recording.c | |
parent | 98ed156cd1cee59249df489c117cfbe12a84c0d3 (diff) | |
download | vdr-plugin-duplicates-169e1700feef224417172ee48354fdd7c0f8374a.tar.gz vdr-plugin-duplicates-169e1700feef224417172ee48354fdd7c0f8374a.tar.bz2 |
Added checks for empty lists.
Diffstat (limited to 'recording.c')
-rw-r--r-- | recording.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/recording.c b/recording.c index da1b624..934217d 100644 --- a/recording.c +++ b/recording.c @@ -60,7 +60,8 @@ cDuplicateRecording::cDuplicateRecording(const cDuplicateRecording &DuplicateRec if (DuplicateRecording.duplicates != NULL) { duplicates = new cList<cDuplicateRecording>; for (const cDuplicateRecording *duplicate = DuplicateRecording.duplicates->First(); duplicate; duplicate = DuplicateRecording.duplicates->Next(duplicate)) { - duplicates->Add(new cDuplicateRecording(*duplicate)); + if (duplicate) + duplicates->Add(new cDuplicateRecording(*duplicate)); } } else duplicates = NULL; @@ -116,23 +117,25 @@ void cDuplicateRecordings::Update(void) { Recordings.Sort(); for (cRecording *recording = Recordings.First(); recording; recording = Recordings.Next(recording)) { #endif - cDuplicateRecording *Item = new cDuplicateRecording(recording); - if (Item->HasDescription()) - recordings.Add(Item); - else if (dc.hidden || Item->Visibility().Read() != HIDDEN) - descriptionless->Duplicates()->Add(Item); + if (recording) { + cDuplicateRecording *Item = new cDuplicateRecording(recording); + if (Item->HasDescription()) + recordings.Add(Item); + else if (dc.hidden || Item->Visibility().Read() != HIDDEN) + descriptionless->Duplicates()->Add(Item); + } } #if VDRVERSNUM >= 20301 recordingsStateKey.Remove(false); // sorting doesn't count as a real modification #endif } for (cDuplicateRecording *recording = recordings.First(); recording; recording = recordings.Next(recording)) { - if (!recording->Checked()) { + if (recording && !recording->Checked()) { recording->SetChecked(); cDuplicateRecording *duplicates = new cDuplicateRecording(); duplicates->Duplicates()->Add(new cDuplicateRecording(*recording)); for (cDuplicateRecording *compare = recordings.First(); compare; compare = recordings.Next(compare)) { - if (!compare->Checked()) { + if (compare && !compare->Checked()) { #ifdef DEBUG_VISIBILITY isDuplicateCount++; #endif |