diff options
Diffstat (limited to 'patches/.svn/text-base/vdr-1.6-device-consistent-destruct.patch.svn-base')
-rw-r--r-- | patches/.svn/text-base/vdr-1.6-device-consistent-destruct.patch.svn-base | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/patches/.svn/text-base/vdr-1.6-device-consistent-destruct.patch.svn-base b/patches/.svn/text-base/vdr-1.6-device-consistent-destruct.patch.svn-base deleted file mode 100644 index 9299be0..0000000 --- a/patches/.svn/text-base/vdr-1.6-device-consistent-destruct.patch.svn-base +++ /dev/null @@ -1,97 +0,0 @@ ---- ../vdr-1.6.0/device.c 2009-01-26 20:26:49.000000000 +0100 -+++ device.c 2009-01-26 22:32:03.000000000 +0100 -@@ -253,14 +253,19 @@ - for (int i = 0; i < MAXRECEIVERS; i++) - receiver[i] = NULL; - -- if (numDevices < MAXDEVICES) -- device[numDevices++] = this; -- else -- esyslog("ERROR: too many devices!"); -+ for (int i = 0; i < MAXDEVICES; i++) -+ if (!device[i]) { -+ device[i] = this; -+ numDevices++; -+ return; -+ } -+ esyslog("ERROR: too many devices!"); - } - - cDevice::~cDevice() - { -+ numDevices--; -+ device[DeviceNumber()] = NULL; - Detach(player); - DetachAllReceivers(); - delete liveSubtitle; -@@ -272,7 +277,7 @@ - { - for (time_t t0 = time(NULL); time(NULL) - t0 < Timeout; ) { - bool ready = true; -- for (int i = 0; i < numDevices; i++) { -+ for (int i = 0; i < MAXDEVICES; i++) { - if (device[i] && !device[i]->Ready()) { - ready = false; - cCondWait::SleepMs(100); -@@ -304,7 +309,7 @@ - - int cDevice::DeviceNumber(void) const - { -- for (int i = 0; i < numDevices; i++) { -+ for (int i = 0; i < MAXDEVICES; i++) { - if (device[i] == this) - return i; - } -@@ -318,7 +323,7 @@ - bool cDevice::SetPrimaryDevice(int n) - { - n--; -- if (0 <= n && n < numDevices && device[n]) { -+ if (0 <= n && n < MAXDEVICES && device[n]) { - isyslog("setting primary device to %d", n + 1); - if (primaryDevice) - primaryDevice->MakePrimaryDevice(false); -@@ -352,7 +357,7 @@ - - cDevice *cDevice::GetDevice(int Index) - { -- return (0 <= Index && Index < numDevices) ? device[Index] : NULL; -+ return (0 <= Index && Index < MAXDEVICES) ? device[Index] : NULL; - } - - cDevice *cDevice::GetDevice(const cChannel *Channel, int Priority, bool LiveView) -@@ -388,8 +393,8 @@ - for (int j = 0; j < NumCamSlots || !NumUsableSlots; j++) { - if (NumUsableSlots && SlotPriority[j] > MAXPRIORITY) - continue; // there is no CAM available in this slot -- for (int i = 0; i < numDevices; i++) { -- if (device[i] == AvoidDevice) -+ for (int i = 0; i < MAXDEVICES; i++) { -+ if (device[i] == NULL || device[i] == AvoidDevice) - continue; // this device shall be temporarily avoided - if (Channel->Ca() && Channel->Ca() <= CA_DVB_MAX && Channel->Ca() != device[i]->CardIndex() + 1) - continue; // a specific card was requested, but not this one -@@ -463,10 +468,11 @@ - void cDevice::Shutdown(void) - { - primaryDevice = NULL; -- for (int i = 0; i < numDevices; i++) { -- delete device[i]; -- device[i] = NULL; -+ for (int i = 0; i < MAXDEVICES; i++) { -+ if( device[i]) { -+ delete device[i]; - } -+ } - } - - uchar *cDevice::GrabImage(int &Size, bool Jpeg, int Quality, int SizeX, int SizeY) -@@ -703,7 +709,7 @@ - - bool cDevice::ProvidesTransponderExclusively(const cChannel *Channel) const - { -- for (int i = 0; i < numDevices; i++) { -+ for (int i = 0; i < MAXDEVICES; i++) { - if (device[i] && device[i] != this && device[i]->ProvidesTransponder(Channel)) - return false; - } |