aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorspiff_ <spiff_@svn>2010-12-13 20:15:40 +0000
committerspiff_ <spiff_@svn>2010-12-13 20:15:40 +0000
commitc9d8ff694633e60f1789413b6005b934cc2f09f8 (patch)
treecbca6e5a2a51bdda24ba2a8dcca79f57c1665e23
parent920da6b99de03ff5254f5a5c1f936d695b70881f (diff)
fixed: ticket #10896 - memory leak watching videos with libass subtitles. thanks to evetsso!
(cherry picked from commit 99b4db4d04c9ae35b124e268a29d8c378d94ba10) git-svn-id: https://xbmc.svn.sourceforge.net/svnroot/xbmc/branches/Dharma@35636 568bbfeb-2a22-0410-94d2-cc84cf5bfa90
-rw-r--r--xbmc/DynamicDll.h2
-rw-r--r--xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitlesLibass.cpp2
-rw-r--r--xbmc/cores/dvdplayer/DVDSubtitles/DllLibass.h1
3 files changed, 4 insertions, 1 deletions
diff --git a/xbmc/DynamicDll.h b/xbmc/DynamicDll.h
index 293c99e3b8..f192923ffc 100644
--- a/xbmc/DynamicDll.h
+++ b/xbmc/DynamicDll.h
@@ -485,7 +485,7 @@ public:
virtual ~DllDynamic();
virtual bool Load();
virtual void Unload();
- bool IsLoaded() { return m_dll!=NULL; }
+ virtual bool IsLoaded() { return m_dll!=NULL; }
bool CanLoad();
bool EnableDelayedUnload(bool bOnOff);
bool SetFile(const CStdString& strDllName);
diff --git a/xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitlesLibass.cpp b/xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitlesLibass.cpp
index fd0ccc65f3..a3df9f4b82 100644
--- a/xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitlesLibass.cpp
+++ b/xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitlesLibass.cpp
@@ -91,6 +91,8 @@ CDVDSubtitlesLibass::~CDVDSubtitlesLibass()
{
if(m_dll.IsLoaded())
{
+ if(m_track)
+ m_dll.ass_free_track(m_track);
m_dll.ass_renderer_done(m_renderer);
m_dll.ass_library_done(m_library);
m_dll.Unload();
diff --git a/xbmc/cores/dvdplayer/DVDSubtitles/DllLibass.h b/xbmc/cores/dvdplayer/DVDSubtitles/DllLibass.h
index 3fc3302672..face3e98dd 100644
--- a/xbmc/cores/dvdplayer/DVDSubtitles/DllLibass.h
+++ b/xbmc/cores/dvdplayer/DVDSubtitles/DllLibass.h
@@ -126,6 +126,7 @@ public:
return true;
}
virtual void Unload() {}
+ virtual bool IsLoaded() { return true; }
};
#else