PHYSFS_freeList(NULL) is now a safe no-op.

This commit is contained in:
Ryan C. Gordon 2009-03-28 17:50:54 -04:00
parent b78da18657
commit fb5e8d9cd2
2 changed files with 10 additions and 3 deletions

View File

@ -872,10 +872,13 @@ const PHYSFS_ArchiveInfo **PHYSFS_supportedArchiveTypes(void)
void PHYSFS_freeList(void *list)
{
void **i;
for (i = (void **) list; *i != NULL; i++)
allocator.Free(*i);
if (list != NULL)
{
for (i = (void **) list; *i != NULL; i++)
allocator.Free(*i);
allocator.Free(list);
allocator.Free(list);
} /* if */
} /* PHYSFS_freeList */

View File

@ -550,7 +550,11 @@ __EXPORT__ const PHYSFS_ArchiveInfo **PHYSFS_supportedArchiveTypes(void);
* Certain PhysicsFS functions return lists of information that are
* dynamically allocated. Use this function to free those resources.
*
* It is safe to pass a NULL here, but doing so will cause a crash in versions
* before PhysicsFS 2.1.0.
*
* \param listVar List of information specified as freeable by this function.
* Passing NULL is safe; it is a valid no-op.
*
* \sa PHYSFS_getCdRomDirs
* \sa PHYSFS_enumerateFiles