From 0e239b4c483e3a4db2f53e3d33a0ca6b4d350388 Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Wed, 16 Apr 2014 01:41:51 +0200 Subject: [PATCH] fixed: binary add-on child dll handling --- xbmc/addons/AddonDll.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/xbmc/addons/AddonDll.h b/xbmc/addons/AddonDll.h index d5e4e9e08a74a..6e1a2cb075b6d 100644 --- a/xbmc/addons/AddonDll.h +++ b/xbmc/addons/AddonDll.h @@ -164,11 +164,10 @@ bool CAddonDll::LoadDll() strFileName = LibPath(); } else - { //FIXME hack to load same Dll twice + { std::string extension = URIUtils::GetExtension(m_strLibName); - strFileName = "special://temp/" + m_strLibName; - URIUtils::RemoveExtension(strFileName); - strFileName += "-" + ID() + extension; + strFileName = "special://temp/" + ID() + "-%03d" + extension; + strFileName = CUtil::GetNextFilename(strFileName, 100); if (!XFILE::CFile::Exists(strFileName)) XFILE::CFile::Copy(LibPath(), strFileName); @@ -331,6 +330,8 @@ void CAddonDll::Destroy() m_pStruct = NULL; if (m_pDll) { + if (m_bIsChild) + XFILE::CFile::Delete(m_pDll->GetFile()); delete m_pDll; m_pDll = NULL; CLog::Log(LOGINFO, "ADDON: Dll Destroyed - %s", Name().c_str());