better fs_cache handling (as in no mem leak...)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@284 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
30d0582da8
commit
20e15438ed
1 changed files with 16 additions and 1 deletions
|
@ -2281,7 +2281,22 @@ void FS_RebuildFSHash(void)
|
||||||
filesystemhash.bucket = BZ_Malloc(Hash_BytesForBuckets(filesystemhash.numbuckets));
|
filesystemhash.bucket = BZ_Malloc(Hash_BytesForBuckets(filesystemhash.numbuckets));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
memset(filesystemhash.bucket, 0, Hash_BytesForBuckets(filesystemhash.numbuckets));
|
{
|
||||||
|
bucket_t *bucket, *next;
|
||||||
|
|
||||||
|
for (i = 0; i < filesystemhash.numbuckets; i++)
|
||||||
|
{
|
||||||
|
bucket = filesystemhash.bucket[i];
|
||||||
|
filesystemhash.bucket[i] = NULL;
|
||||||
|
while(bucket)
|
||||||
|
{
|
||||||
|
next = bucket->next;
|
||||||
|
if (bucket->keystring == (char*)(bucket+1))
|
||||||
|
Z_Free(bucket);
|
||||||
|
bucket = next;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Hash_InitTable(&filesystemhash, filesystemhash.numbuckets, filesystemhash.bucket);
|
Hash_InitTable(&filesystemhash, filesystemhash.numbuckets, filesystemhash.bucket);
|
||||||
|
|
||||||
fs_hash_dups = 0;
|
fs_hash_dups = 0;
|
||||||
|
|
Loading…
Reference in a new issue