summaryrefslogtreecommitdiff
path: root/recording.c
diff options
context:
space:
mode:
authorTimo Eskola <timo@tolleri.net>2018-09-06 10:33:40 +0300
committerTimo Eskola <timo@tolleri.net>2018-09-06 10:33:40 +0300
commit169e1700feef224417172ee48354fdd7c0f8374a (patch)
tree37c72ddb03b509c29acde2380db00d234414e0b4 /recording.c
parent98ed156cd1cee59249df489c117cfbe12a84c0d3 (diff)
downloadvdr-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.c19
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