Skip to content

Commit

Permalink
Added PHYSFS_getAllocator().
Browse files Browse the repository at this point in the history
  • Loading branch information
icculus committed Mar 28, 2009
1 parent 2a65060 commit d6ce63e
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 0 deletions.
7 changes: 7 additions & 0 deletions src/physfs.c
Expand Up @@ -2153,6 +2153,13 @@ int PHYSFS_setAllocator(const PHYSFS_Allocator *a)
} /* PHYSFS_setAllocator */


const PHYSFS_Allocator *PHYSFS_getAllocator(void)
{
BAIL_IF_MACRO(!initialized, ERR_NOT_INITIALIZED, NULL);
return &allocator;
} /* PHYSFS_getAllocator */


static void *mallocAllocatorMalloc(PHYSFS_uint64 s)
{
BAIL_IF_MACRO(__PHYSFS_ui64FitsAddressSpace(s), ERR_OUT_OF_MEMORY, NULL);
Expand Down
38 changes: 38 additions & 0 deletions src/physfs.h
Expand Up @@ -2380,6 +2380,44 @@ __EXPORT__ void PHYSFS_utf8FromLatin1(const char *src, char *dst,

/* Everything above this line is part of the PhysicsFS 2.0 API. */

/**
* \fn const PHYSFS_Allocator *PHYSFS_getAllocator(void)
* \brief Discover the current allocator.
*
* (This is for limited, hardcore use. If you don't immediately see a need
* for it, you can probably ignore this forever.)
*
* This function exposes the function pointers that make up the currently-used
* allocator. This can be useful for apps that want to access PhysicsFS's
* internal, default allocation routines, as well as for external code that
* wants to share the same allocator, even if the application specified their
* own.
*
* This call is only valid between PHYSFS_init() and PHYSFS_deinit() calls;
* it will return NULL if the library isn't initialized. As we can't
* guarantee the state of the internal allocators unless the library is
* initialized, you shouldn't use any allocator returned here after a call
* to PHYSFS_deinit().
*
* Do not call the returned allocator's Init() or Deinit() methods under any
* circumstances.
*
* If you aren't immediately sure what to do with this function, you can
* safely ignore it altogether.
*
* \return Current allocator, as set by PHYSFS_setAllocator(), or PhysicsFS's
* internal, default allocator if no application-defined allocator
* is currently set. Will return NULL if the library is not
* initialized.
*
* \sa PHYSFS_Allocator
* \sa PHYSFS_setAllocator
*/
__EXPORT__ const PHYSFS_Allocator *PHYSFS_getAllocator(void);


/* Everything above this line is part of the PhysicsFS 2.1 API. */


#ifdef __cplusplus
}
Expand Down

0 comments on commit d6ce63e

Please sign in to comment.