summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlouis <louis.braun@gmx.de>2016-09-25 12:01:41 +0200
committerlouis <louis.braun@gmx.de>2016-09-25 12:01:41 +0200
commit0ef5487e6f2eb314dcab347b877dd175604013e6 (patch)
tree8752bf511708989e37e5c047f1ae3c444d0e3edb
parente75aaa6f330fdbf43f68707a408cd13d031b39ff (diff)
downloadvdr-plugin-skindesigner-0ef5487e6f2eb314dcab347b877dd175604013e6.tar.gz
vdr-plugin-skindesigner-0ef5487e6f2eb314dcab347b877dd175604013e6.tar.bz2
fixed memory leak
-rw-r--r--coreengine/listelements.c16
-rw-r--r--coreengine/listelements.h4
2 files changed, 18 insertions, 2 deletions
diff --git a/coreengine/listelements.c b/coreengine/listelements.c
index 9d7a3d0..0e25dc7 100644
--- a/coreengine/listelements.c
+++ b/coreengine/listelements.c
@@ -1658,7 +1658,9 @@ void cLeMenuRecordings::ClearCurrentElement(void) {
}
void cLeMenuRecordings::Set(const cRecording *recording, int level, int total, int New) {
- this->recording = new cRecording(recording->FileName());
+ if (!this->recording) {
+ this->recording = new cRecording(recording->FileName());
+ }
this->level = level;
this->total = total;
this->New = New;
@@ -1787,6 +1789,18 @@ void cLeMenuRecordings::RenderCurrent(void) {
currentRecording->Parse();
}
+void cLeMenuRecordings::Clear(bool forceClearBackground) {
+ delete recording;
+ recording = NULL;
+ cListElement::Clear(forceClearBackground);
+}
+
+void cLeMenuRecordings::Close(void) {
+ delete recording;
+ recording = NULL;
+ cListElement::Close();
+}
+
char *cLeMenuRecordings::RecName(const char *path, int level) {
char *recName;
const char *startName = path;
diff --git a/coreengine/listelements.h b/coreengine/listelements.h
index d76bb2e..30dcb6b 100644
--- a/coreengine/listelements.h
+++ b/coreengine/listelements.h
@@ -40,7 +40,7 @@ public:
bool DoScroll(void) { return current; };
void Render(void);
virtual void RenderCurrent(void) { };
- void Close(void);
+ virtual void Close(void);
int ListShiftTime(void) { return ShiftTime(); };
int ShiftDistance(void);
eOrientation ShiftOrientation(void);
@@ -283,6 +283,8 @@ public:
void Set(const cRecording *recording, int level, int total, int New);
bool Parse(bool forced = true);
void RenderCurrent(void);
+ void Clear(bool forceClearBackground = false);
+ void Close(void);
};
/******************************************************************