|
@@ -271,6 +271,7 @@ unsigned int distance(int dx, int dy) {
|
|
*/
|
|
*/
|
|
int map_freeblock (struct block_list *bl)
|
|
int map_freeblock (struct block_list *bl)
|
|
{
|
|
{
|
|
|
|
+ nullpo_retr(block_free_lock, bl);
|
|
if (block_free_lock == 0 || block_free_count >= block_free_max)
|
|
if (block_free_lock == 0 || block_free_count >= block_free_max)
|
|
{
|
|
{
|
|
aFree(bl);
|
|
aFree(bl);
|
|
@@ -308,7 +309,7 @@ int map_freeblock_unlock_sub(char *file, int lineno)
|
|
{ //Directly calling aFree shouldn't be a leak, as Free remembers the size the original pointed to memory was allocated with? [Skotlex]
|
|
{ //Directly calling aFree shouldn't be a leak, as Free remembers the size the original pointed to memory was allocated with? [Skotlex]
|
|
// aFree(block_free[i]);
|
|
// aFree(block_free[i]);
|
|
// _mfree(block_free[i], file, lineno, __func__);
|
|
// _mfree(block_free[i], file, lineno, __func__);
|
|
- _mfree(block_free[i], file, block_free[i]->type*100000+lineno, __func__);
|
|
|
|
|
|
+ _mfree(block_free[i], file, ((block_free[i]?block_free[i]->type:0)*100000)+lineno, __func__);
|
|
block_free[i] = NULL;
|
|
block_free[i] = NULL;
|
|
}
|
|
}
|
|
block_free_count = 0;
|
|
block_free_count = 0;
|