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