r766 - trunk
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Fri Sep 9 10:07:43 EDT 2005
Author: icculus
Date: 2005-09-09 10:07:43 -0400 (Fri, 09 Sep 2005)
New Revision: 766
Modified:
trunk/CHANGELOG
trunk/physfs.c
trunk/physfs.h
Log:
Some tweaks to PHYSFS_Allocator.
Modified: trunk/CHANGELOG
===================================================================
--- trunk/CHANGELOG 2005-09-06 06:31:04 UTC (rev 765)
+++ trunk/CHANGELOG 2005-09-09 14:07:43 UTC (rev 766)
@@ -2,6 +2,7 @@
* CHANGELOG.
*/
+09092005 - Some tweaks to PHYSFS_Allocator.
09062005 - Happy September. Changed the allocation abstraction to use
PHYSFS_uint64 instead of size_t, so we don't have to include
system headers inside physfs.h. Minor MingW fixes (but it's still
Modified: trunk/physfs.c
===================================================================
--- trunk/physfs.c 2005-09-06 06:31:04 UTC (rev 765)
+++ trunk/physfs.c 2005-09-09 14:07:43 UTC (rev 766)
@@ -777,7 +777,8 @@
if (!externalAllocator)
setDefaultAllocator();
- BAIL_IF_MACRO(!allocator.Init(), NULL, 0);
+ if (allocator.Init != NULL)
+ BAIL_IF_MACRO(!allocator.Init(), NULL, 0);
BAIL_IF_MACRO(!__PHYSFS_platformInit(), NULL, 0);
@@ -889,7 +890,8 @@
__PHYSFS_platformDestroyMutex(errorLock);
__PHYSFS_platformDestroyMutex(stateLock);
- allocator.Deinit();
+ if (allocator.Deinit != NULL)
+ allocator.Deinit();
errorLock = stateLock = NULL;
return(1);
@@ -2047,7 +2049,7 @@
} /* PHYSFS_flush */
-int PHYSFS_setAllocator(PHYSFS_Allocator *a)
+int PHYSFS_setAllocator(const PHYSFS_Allocator *a)
{
BAIL_IF_MACRO(initialized, ERR_IS_INITIALIZED, 0);
externalAllocator = (a != NULL);
Modified: trunk/physfs.h
===================================================================
--- trunk/physfs.h 2005-09-06 06:31:04 UTC (rev 765)
+++ trunk/physfs.h 2005-09-09 14:07:43 UTC (rev 766)
@@ -1847,7 +1847,7 @@
/* Everything above this line is part of the PhysicsFS 1.0 API. */
/**
- * \struct PHYSFS_allocator
+ * \struct PHYSFS_Allocator
* \brief PhysicsFS allocation function pointers.
*
* (This is for limited, hardcore use. If you don't immediately see a need
@@ -1868,16 +1868,16 @@
*/
typedef struct
{
- int (*Init)(void);
- void (*Deinit)(void);
- void *(*Malloc)(PHYSFS_uint64);
- void *(*Realloc)(void *, PHYSFS_uint64);
- void (*Free)(void *);
+ int (*Init)(void); /**< Initialize. Can be NULL. Zero on failure. */
+ void (*Deinit)(void); /**< Deinitialize your allocator. Can be NULL. */
+ void *(*Malloc)(PHYSFS_uint64); /**< Allocate like malloc(). */
+ void *(*Realloc)(void *, PHYSFS_uint64); /**< Reallocate like realloc(). */
+ void (*Free)(void *); /**< Free memory from Malloc or Realloc. */
} PHYSFS_Allocator;
/**
- * \fn int PHYSFS_setAllocator(PHYSFS_Allocator *allocator)
+ * \fn int PHYSFS_setAllocator(const PHYSFS_Allocator *allocator)
* \brief Hook your own allocation routines into PhysicsFS.
*
* (This is for limited, hardcore use. If you don't immediately see a need
@@ -1903,7 +1903,7 @@
* \return zero on failure, non-zero on success. This call only fails
* when used between PHYSFS_init() and PHYSFS_deinit() calls.
*/
-__EXPORT__ int PHYSFS_setAllocator(PHYSFS_Allocator *allocator);
+__EXPORT__ int PHYSFS_setAllocator(const PHYSFS_Allocator *allocator);
/**
More information about the physfs-commits
mailing list