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
|
else
|
||||||
{
|
{
|
||||||
CacheList->Next = cache;
|
cache->Next = CacheList;
|
||||||
cache->Prev = CacheList;
|
cache->Next->Prev = cache;
|
||||||
|
CacheList = cache;
|
||||||
|
CacheList->Prev = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return cache;
|
return cache;
|
||||||
@ -142,13 +144,12 @@ static void ers_free_cache(ers_cache_t *cache, bool remove)
|
|||||||
for (i = 0; i < cache->Used; i++)
|
for (i = 0; i < cache->Used; i++)
|
||||||
aFree(cache->Blocks[i]);
|
aFree(cache->Blocks[i]);
|
||||||
|
|
||||||
if (cache->Prev)
|
|
||||||
cache->Prev->Next = cache->Next;
|
|
||||||
|
|
||||||
if (cache->Next)
|
if (cache->Next)
|
||||||
cache->Next->Prev = cache->Prev;
|
cache->Next->Prev = cache->Prev;
|
||||||
|
|
||||||
if (CacheList == cache)
|
if (cache->Prev)
|
||||||
|
cache->Prev->Next = cache->Next;
|
||||||
|
else
|
||||||
CacheList = cache->Next;
|
CacheList = cache->Next;
|
||||||
|
|
||||||
aFree(cache->Blocks);
|
aFree(cache->Blocks);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user