Fixed ERS cache linked list algorithm.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16748 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
greenboxal2 2012-09-05 11:34:16 +00:00
parent 3a5e9a8bbc
commit ee0c86082a

View File

@ -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);