From 48666eb3454980a46a4e7b52de23bcd0b00b16ab Mon Sep 17 00:00:00 2001 From: ulion <ulion2002@gmail.com> Date: Fri, 10 May 2013 09:13:57 +0800 Subject: When using double cache, do not increase the total memory cost. --- xbmc/filesystem/FileCache.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/xbmc/filesystem/FileCache.cpp b/xbmc/filesystem/FileCache.cpp index b8df3227d9..5dfd38d877 100644 --- a/xbmc/filesystem/FileCache.cpp +++ b/xbmc/filesystem/FileCache.cpp @@ -88,8 +88,16 @@ CFileCache::CFileCache(bool useDoubleCache) : CThread("FileCache") if (g_advancedSettings.m_cacheMemBufferSize == 0) m_pCache = new CSimpleFileCache(); else - m_pCache = new CCircularCache(g_advancedSettings.m_cacheMemBufferSize - , std::max<unsigned int>( g_advancedSettings.m_cacheMemBufferSize / 4, 1024 * 1024)); + { + size_t front = g_advancedSettings.m_cacheMemBufferSize; + size_t back = std::max<size_t>( g_advancedSettings.m_cacheMemBufferSize / 4, 1024 * 1024); + if (useDoubleCache) + { + front = front / 2; + back = back / 2; + } + m_pCache = new CCircularCache(front, back); + } if (useDoubleCache) { m_pCache = new CSimpleDoubleCache(m_pCache); -- cgit v1.2.3