summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchriszero <zerov83@gmail.com>2015-05-02 19:42:08 +0200
committerchriszero <zerov83@gmail.com>2015-05-02 19:42:08 +0200
commitf7448c90f3c27f44cca77bdf2399d4321ef990a2 (patch)
tree108d744a4c33a323a305a1163e73c54679c9ff86
parent70a2f36b1b8abb3bdf5df019c3bef34189d728eb (diff)
downloadvdr-plugin-plex-f7448c90f3c27f44cca77bdf2399d4321ef990a2.tar.gz
vdr-plugin-plex-f7448c90f3c27f44cca77bdf2399d4321ef990a2.tar.bz2
Fixes segfault when using <areascroll/>
-rw-r--r--browserGrid.cpp9
-rw-r--r--browserGrid.h1
-rw-r--r--plexSdOsd.cpp5
-rw-r--r--viewHeader.cpp4
-rw-r--r--viewHeader.h1
5 files changed, 18 insertions, 2 deletions
diff --git a/browserGrid.cpp b/browserGrid.cpp
index e181350..2b990e8 100644
--- a/browserGrid.cpp
+++ b/browserGrid.cpp
@@ -28,6 +28,15 @@ cBrowserGrid::~cBrowserGrid()
m_vElements.clear();
}
+void cBrowserGrid::Clear()
+{
+ m_pBackground->Clear();
+ m_pfooter->Clear();
+ m_pInfopane->Clear();
+ m_pWatch->Clear();
+ m_pGrid->Clear();
+}
+
void cBrowserGrid::Flush()
{
cMutexLock MutexLock(&cPlexSdOsd::RedrawMutex);
diff --git a/browserGrid.h b/browserGrid.h
index 339bdc4..a875149 100644
--- a/browserGrid.h
+++ b/browserGrid.h
@@ -69,6 +69,7 @@ public:
void PrevTab();
bool DrawTime();
virtual void Flush();
+ virtual void Clear();
};
#endif // CBROWSERGRID_H
diff --git a/plexSdOsd.cpp b/plexSdOsd.cpp
index 27f841f..949eb81 100644
--- a/plexSdOsd.cpp
+++ b/plexSdOsd.cpp
@@ -13,7 +13,9 @@ cPlexSdOsd::cPlexSdOsd()
cPlexSdOsd::~cPlexSdOsd()
{
+ m_pBrowserGrid->Clear();
cPictureCache::GetInstance().RemoveAll();
+ delete m_pRootView;
}
bool cPlexSdOsd::SdSupport()
@@ -84,8 +86,7 @@ eOSState cPlexSdOsd::ProcessKey(eKeys Key)
Flush();
break;
case kBack:
- //state =
- m_pBrowserGrid->NavigateBack();
+ state = m_pBrowserGrid->NavigateBack();
Flush();
break;
case kRed:
diff --git a/viewHeader.cpp b/viewHeader.cpp
index d02b032..6471a9e 100644
--- a/viewHeader.cpp
+++ b/viewHeader.cpp
@@ -6,6 +6,10 @@ cViewHeader::cViewHeader(skindesignerapi::cViewElement* viewElem)
m_eCurrentTab = ePlexMenuTab::pmtOnDeck;
}
+cViewHeader::~cViewHeader()
+{
+}
+
void cViewHeader::Draw(cGridElement* elem)
{
m_pViewElem->Clear();
diff --git a/viewHeader.h b/viewHeader.h
index a40c4df..997f741 100644
--- a/viewHeader.h
+++ b/viewHeader.h
@@ -19,6 +19,7 @@ private:
public:
cViewHeader(skindesignerapi::cViewElement* viewElem);
+ ~cViewHeader();
void Draw(cGridElement* elem);
ePlexMenuTab NextTab();
ePlexMenuTab PrevTab();