Minor allocation hook corrections.
--- a/archivers/zip.c Thu Sep 23 06:53:16 2004 +0000
+++ b/archivers/zip.c Thu Sep 23 23:59:17 2004 +0000
@@ -192,8 +192,13 @@
PHYSFS_allocator *allocator = __PHYSFS_getAllocator();
size_t total = (items * size) + sizeof (PHYSFS_memhandle);
PHYSFS_memhandle h = allocator->malloc(total);
- char *ptr = (char *) allocator->lock(h);
- PHYSFS_memhandle *ph = (PHYSFS_memhandle *) ptr;
+ char *ptr;
+ PHYSFS_memhandle *ph;
+ if (h == NULL)
+ return(NULL);
+
+ ptr = (char *) allocator->lock(h);
+ ph = (PHYSFS_memhandle *) ptr;
*ph = h; /* tuck the memhandle in front of the memory block... */
return(ptr + sizeof (PHYSFS_memhandle));
} /* zlibPhysfsAlloc */
--- a/physfs.h Thu Sep 23 06:53:16 2004 +0000
+++ b/physfs.h Thu Sep 23 23:59:17 2004 +0000
@@ -1834,7 +1834,9 @@
* because it's convenient for systems to have handles be the same size
* as a pointer, but they shouldn't be assumed to point to valid memory
* (or to memory at all). The allocator in use will convert from memhandles
- * to valid pointers to allocated memory.
+ * to valid pointers to allocated memory. A memhandle of NULL is considered
+ * to be bogus (so malloc can return a NULL handle), even though it's not
+ * technically a NULL pointer in itself.
*
* \sa PHYSFS_allocator
* \sa PHYSFS_setAllocator