diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2006-09-02 10:22:40 +0200 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2006-09-02 10:22:40 +0200 |
commit | 4c88f1da7e96572ad63e82b4756694abef0dd33a (patch) | |
tree | 256dc009f312180e0e485089efd0d230e3668cd6 /timers.c | |
parent | 4ae577fcb4a323af74d05645e34f31f893b4c6e7 (diff) | |
download | vdr-4c88f1da7e96572ad63e82b4756694abef0dd33a.tar.gz vdr-4c88f1da7e96572ad63e82b4756694abef0dd33a.tar.bz2 |
Fixed the cTimer::operator=() so that it won't mess up the cListObject's pointers; fixed a memory leak in the cTimer::operator=() when using the 'aux' string
Diffstat (limited to 'timers.c')
-rw-r--r-- | timers.c | 23 |
1 files changed, 18 insertions, 5 deletions
@@ -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; } |