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:
parent
3a5e9a8bbc
commit
ee0c86082a
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user