diff options
-rw-r--r-- | CONTRIBUTORS | 2 | ||||
-rw-r--r-- | HISTORY | 6 | ||||
-rw-r--r-- | timers.c | 23 |
3 files changed, 25 insertions, 6 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 357eb5d2..10bf779d 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1737,6 +1737,8 @@ Alexander Rieger <Alexander.Rieger@inka.de> for fixing a typo in skins.h for making cSkins::QueueMessage() called from a background thread with an empty message clears all messages that have been previously queued by that thread + for reporting that the cTimer::operator=() messes up the cListObject's pointers + for reporting a memory leak in the cTimer::operator=() when using the 'aux' string Philip Prindeville <philipp_subx@redfish-solutions.com> for updates to 'sources.conf' @@ -4896,6 +4896,10 @@ Video Disk Recorder Revision History detatching receivers. This change has caused some unwanted behavior, so further testing is necessary. -2006-09-01: Version 1.4.2-1 +2006-09-02: Version 1.4.2-1 - Added LC_ALL to the checks for UTF-8 at startup (suggested by Matthias Schwarzott). +- Fixed the cTimer::operator=() so that it won't mess up the cListObject's pointers + (reported by Alexander Rieger). +- Fixed a memory leak in the cTimer::operator=() when using the 'aux' string + (reported by Alexander Rieger). @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: timers.c 1.62 2006/08/05 12:03:36 kls Exp $ + * $Id: timers.c 1.63 2006/09/02 10:20:36 kls Exp $ */ #include "timers.h" @@ -90,11 +90,24 @@ cTimer::~cTimer() cTimer& cTimer::operator= (const cTimer &Timer) { - memcpy(this, &Timer, sizeof(*this)); - if (aux) - aux = strdup(aux); - event = NULL; + startTime = Timer.startTime; + stopTime = Timer.stopTime; lastSetEvent = 0; + recording = Timer.recording; + pending = Timer.pending; + inVpsMargin = Timer.inVpsMargin; + flags = Timer.flags; + channel = Timer.channel; + day = Timer.day; + weekdays = Timer.weekdays; + start = Timer.start; + stop = Timer.stop; + priority = Timer.priority; + lifetime = Timer.lifetime; + strncpy(file, Timer.file, sizeof(file)); + free(aux); + aux = Timer.aux ? strdup(Timer.aux) : NULL; + event = NULL; return *this; } |