diff options
Diffstat (limited to 'sections.c')
-rw-r--r-- | sections.c | 14 |
1 files changed, 9 insertions, 5 deletions
@@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: sections.c 1.5 2004/02/07 15:51:57 kls Exp $ + * $Id: sections.c 1.6 2004/07/17 14:17:07 kls Exp $ */ #include "sections.h" @@ -85,11 +85,15 @@ void cSectionHandler::Add(const cFilterData *FilterData) break; } if (!fh) { - fh = new cFilterHandle(*FilterData); - filterHandles.Add(fh); - fh->handle = device->OpenFilter(FilterData->pid, FilterData->tid, FilterData->mask); + int handle = device->OpenFilter(FilterData->pid, FilterData->tid, FilterData->mask); + if (handle >= 0) { + fh = new cFilterHandle(*FilterData); + fh->handle = handle; + filterHandles.Add(fh); + } } - fh->used++; + if (fh) + fh->used++; Unlock(); } |