Minor allocation hook corrections.

This commit is contained in:
Ryan C. Gordon 2004-09-23 23:59:17 +00:00
parent 0030a3cd04
commit 7553af8acf
2 changed files with 10 additions and 3 deletions

View File

@ -192,8 +192,13 @@ static voidpf zlibPhysfsAlloc(voidpf opaque, uInt items, uInt size)
PHYSFS_allocator *allocator = __PHYSFS_getAllocator(); PHYSFS_allocator *allocator = __PHYSFS_getAllocator();
size_t total = (items * size) + sizeof (PHYSFS_memhandle); size_t total = (items * size) + sizeof (PHYSFS_memhandle);
PHYSFS_memhandle h = allocator->malloc(total); PHYSFS_memhandle h = allocator->malloc(total);
char *ptr = (char *) allocator->lock(h); char *ptr;
PHYSFS_memhandle *ph = (PHYSFS_memhandle *) 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... */ *ph = h; /* tuck the memhandle in front of the memory block... */
return(ptr + sizeof (PHYSFS_memhandle)); return(ptr + sizeof (PHYSFS_memhandle));
} /* zlibPhysfsAlloc */ } /* zlibPhysfsAlloc */

View File

@ -1834,7 +1834,9 @@ __EXPORT__ int PHYSFS_writeUBE64(PHYSFS_file *file, PHYSFS_uint64 val);
* because it's convenient for systems to have handles be the same size * 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 * 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 * (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_allocator
* \sa PHYSFS_setAllocator * \sa PHYSFS_setAllocator