diff options
author | spiff_ <spiff_@svn> | 2010-12-13 20:15:40 +0000 |
---|---|---|
committer | spiff_ <spiff_@svn> | 2010-12-13 20:15:40 +0000 |
commit | c9d8ff694633e60f1789413b6005b934cc2f09f8 (patch) | |
tree | cbca6e5a2a51bdda24ba2a8dcca79f57c1665e23 | |
parent | 920da6b99de03ff5254f5a5c1f936d695b70881f (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.h | 2 | ||||
-rw-r--r-- | xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitlesLibass.cpp | 2 | ||||
-rw-r--r-- | xbmc/cores/dvdplayer/DVDSubtitles/DllLibass.h | 1 |
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 |