From c9d8ff694633e60f1789413b6005b934cc2f09f8 Mon Sep 17 00:00:00 2001 From: spiff_ Date: Mon, 13 Dec 2010 20:15:40 +0000 Subject: [PATCH] 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 --- xbmc/DynamicDll.h | 2 +- xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitlesLibass.cpp | 2 ++ xbmc/cores/dvdplayer/DVDSubtitles/DllLibass.h | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/xbmc/DynamicDll.h b/xbmc/DynamicDll.h index 293c99e..f192923 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 fd0ccc6..a3df9f4 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 3fc3302..face3e9 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 -- 2.7.4