From ea58a7cf0ed8f34fd75dbaa11d3c3d7dd2d9012c Mon Sep 17 00:00:00 2001 From: greenboxal2 Date: Wed, 5 Sep 2012 11:34:16 +0000 Subject: Fixed ERS cache linked list algorithm. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16748 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/common/ers.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/common') diff --git a/src/common/ers.c b/src/common/ers.c index 514f09c34..b94b0888d 100644 --- a/src/common/ers.c +++ b/src/common/ers.c @@ -128,8 +128,10 @@ static ers_cache_t *ers_find_cache(unsigned int size) } else { - CacheList->Next = cache; - cache->Prev = CacheList; + cache->Next = CacheList; + cache->Next->Prev = cache; + CacheList = cache; + CacheList->Prev = NULL; } return cache; @@ -142,13 +144,12 @@ static void ers_free_cache(ers_cache_t *cache, bool remove) for (i = 0; i < cache->Used; i++) aFree(cache->Blocks[i]); - if (cache->Prev) - cache->Prev->Next = cache->Next; - if (cache->Next) cache->Next->Prev = cache->Prev; - if (CacheList == cache) + if (cache->Prev) + cache->Prev->Next = cache->Next; + else CacheList = cache->Next; aFree(cache->Blocks); -- cgit v1.2.3-60-g2f50