VDR 1.4.0 - the final countdown

Message ID 445381DC.1010104@cadsoft.de
State New
Headers

Commit Message

Klaus Schmidinger April 29, 2006, 3:10 p.m. UTC
  There have been three last minute fixes since version 1.3.49,
which I'm attaching as a 'diff' to this message:

- Fixed handling the "Power" key in case a recording is going on and no plugin
   is active (thanks to Udo Richter; bug reported by Dominique Simon).
- Fixed a memory leak in handling external EPG data (thanks to Tobias Grimm).
- Fixed a memory leak in closing the video file during replay (thanks to Tobias Grimm).

Maybe some of you can find the time to apply this small
patch and verify it. There have also been patches to i18n.c
for updates on the Polish and Italian texts, but that's
uncritical.


If nothing really serious goes wrong, I plan to release VDR 1.4.0
tomorrow afternoon.

Klaus
  

Patch

diff -ruN vdr-1.3.49/eit.c vdr-1.4.0/eit.c
--- vdr-1.3.49/eit.c	2006-04-15 16:11:52.000000000 +0200
+++ vdr-1.4.0/eit.c	2006-04-29 13:38:37.000000000 +0200
@@ -103,8 +103,10 @@ 
       cLinkChannels *LinkChannels = NULL;
       cComponents *Components = NULL;
       for (SI::Loop::Iterator it2; (d = SiEitEvent.eventDescriptors.getNext(it2)); ) {
-          if (ExternalData && d->getDescriptorTag() != SI::ComponentDescriptorTag)
+          if (ExternalData && d->getDescriptorTag() != SI::ComponentDescriptorTag) {
+             delete d;
              continue;
+             }
           switch (d->getDescriptorTag()) {
             case SI::ExtendedEventDescriptorTag: {
                  SI::ExtendedEventDescriptor *eed = (SI::ExtendedEventDescriptor *)d;
diff -ruN vdr-1.3.49/recording.c vdr-1.4.0/recording.c
--- vdr-1.3.49/recording.c	2006-04-23 12:43:06.000000000 +0200
+++ vdr-1.4.0/recording.c	2006-04-29 15:22:20.000000000 +0200
@@ -1436,7 +1436,7 @@ 
 void cFileName::Close(void)
 {
   if (file) {
-     if ((record && CloseVideoFile(file) < 0) || (!record && file->Close() < 0))
+     if (CloseVideoFile(file) < 0)
         LOG_ERROR_STR(fileName);
      file = NULL;
      }
diff -ruN vdr-1.3.49/vdr.c vdr-1.4.0/vdr.c
--- vdr-1.3.49/vdr.c	2006-04-28 15:23:55.000000000 +0200
+++ vdr-1.4.0/vdr.c	2006-04-29 11:14:06.000000000 +0200
@@ -970,21 +970,23 @@ 
                   }
                break;
           // Power off:
-          case kPower: isyslog("Power button pressed");
-                       DELETE_MENU;
-                       if (!Shutdown) {
-                          Skins.Message(mtError, tr("Can't shutdown - option '-s' not given!"));
-                          break;
-                          }
-                       if (cRecordControls::Active()) {
-                          if (Interface->Confirm(tr("Recording - shut down anyway?")))
-                             ForceShutdown = true;
-                          }
-                       if (!cPluginManager::Active(tr("shut down anyway?")))
-                          ForceShutdown = true;
-                       LastActivity = 1; // not 0, see below!
-                       UserShutdown = true;
-                       break;
+          case kPower:
+               isyslog("Power button pressed");
+               DELETE_MENU;
+               if (!Shutdown) {
+                  Skins.Message(mtError, tr("Can't shutdown - option '-s' not given!"));
+                  break;
+                  }
+               LastActivity = 1; // not 0, see below!
+               UserShutdown = true;
+               if (cRecordControls::Active()) {
+                  if (!Interface->Confirm(tr("Recording - shut down anyway?")))
+                     break;
+                  }
+               if (cPluginManager::Active(tr("shut down anyway?")))
+                  break;
+               ForceShutdown = true;
+               break;
           default: break;
           }
         Interact = Menu ? Menu : cControl::Control(); // might have been closed in the mean time