r762 - in trunk: . platform
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Tue Sep 6 02:24:43 EDT 2005
Author: icculus
Date: 2005-09-06 02:24:42 -0400 (Tue, 06 Sep 2005)
New Revision: 762
Modified:
trunk/CHANGELOG
trunk/physfs.h
trunk/physfs_internal.h
trunk/platform/macclassic.c
trunk/platform/os2.c
trunk/platform/pocketpc.c
trunk/platform/posix.c
trunk/platform/skeleton.c
trunk/platform/win32.c
Log:
Don't use size_t in physfs.h, since it relies on C runtime headers.
Modified: trunk/CHANGELOG
===================================================================
--- trunk/CHANGELOG 2005-08-20 04:46:25 UTC (rev 761)
+++ trunk/CHANGELOG 2005-09-06 06:24:42 UTC (rev 762)
@@ -2,6 +2,9 @@
* CHANGELOG.
*/
+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.
08202005 - Fixed bug in verifyPath() that was breaking PHYSFS_setSaneConfig()
and other corner cases.
07242005 - Patched to compile on BeOS.
Modified: trunk/physfs.h
===================================================================
--- trunk/physfs.h 2005-08-20 04:46:25 UTC (rev 761)
+++ trunk/physfs.h 2005-09-06 06:24:42 UTC (rev 762)
@@ -1857,14 +1857,21 @@
* Allocators are assumed to be reentrant by the caller; please mutex
* accordingly.
*
+ * Allocations are always discussed in 64-bits, for future expansion...we're
+ * on the cusp of a 64-bit transition, and we'll probably be allocating 6
+ * gigabytes like it's nothing sooner or later, and I don't want to change
+ * this again at that point. If you're on a 32-bit platform and have to
+ * downcast, it's okay to return NULL if the allocation is greater than
+ * 4 gigabytes, since you'd have to do so anyhow.
+ *
* \sa PHYSFS_setAllocator
*/
typedef struct
{
int (*Init)(void);
void (*Deinit)(void);
- void *(*Malloc)(size_t);
- void *(*Realloc)(void *, size_t);
+ void *(*Malloc)(PHYSFS_uint64);
+ void *(*Realloc)(void *, PHYSFS_uint64);
void (*Free)(void *);
} PHYSFS_Allocator;
Modified: trunk/physfs_internal.h
===================================================================
--- trunk/physfs_internal.h 2005-08-20 04:46:25 UTC (rev 761)
+++ trunk/physfs_internal.h 2005-09-06 06:24:42 UTC (rev 762)
@@ -1682,14 +1682,14 @@
* This is used for allocation if the user hasn't selected their own
* allocator via PHYSFS_setAllocator().
*/
-void *__PHYSFS_platformAllocatorMalloc(size_t s);
+void *__PHYSFS_platformAllocatorMalloc(PHYSFS_uint64 s);
/*
* Implement realloc. It's safe to just pass through from the C runtime.
* This is used for allocation if the user hasn't selected their own
* allocator via PHYSFS_setAllocator().
*/
-void *__PHYSFS_platformAllocatorRealloc(void *ptr, size_t s);
+void *__PHYSFS_platformAllocatorRealloc(void *ptr, PHYSFS_uint64 s);
/*
* Implement free. It's safe to just pass through from the C runtime.
Modified: trunk/platform/macclassic.c
===================================================================
--- trunk/platform/macclassic.c 2005-08-20 04:46:25 UTC (rev 761)
+++ trunk/platform/macclassic.c 2005-09-06 06:24:42 UTC (rev 762)
@@ -939,17 +939,23 @@
} /* __PHYSFS_platformAllocatorInit */
-void *__PHYSFS_platformAllocatorMalloc(size_t s)
+void *__PHYSFS_platformAllocatorMalloc(PHYSFS_uint64 s)
{
+ /* make sure s isn't larger than the address space of the platform... */
+ if ( s > (0xFFFFFFFFFFFFFFFF >> (64-(sizeof (size_t) * 8))) )
+ BAIL_MACRO(ERR_OUT_OF_MEMORY, NULL);
#undef malloc
- return(malloc(s));
+ return(malloc((size_t) s));
} /* __PHYSFS_platformMalloc */
-void *__PHYSFS_platformAllocatorRealloc(void *ptr, size_t s)
+void *__PHYSFS_platformAllocatorRealloc(void *ptr, PHYSFS_uint64 s)
{
+ /* make sure s isn't larger than the address space of the platform... */
+ if ( s > (0xFFFFFFFFFFFFFFFF >> (64-(sizeof (size_t) * 8))) )
+ BAIL_MACRO(ERR_OUT_OF_MEMORY, NULL);
#undef realloc
- return(realloc(ptr, s));
+ return(realloc(ptr, (size_t) s));
} /* __PHYSFS_platformRealloc */
Modified: trunk/platform/os2.c
===================================================================
--- trunk/platform/os2.c 2005-08-20 04:46:25 UTC (rev 761)
+++ trunk/platform/os2.c 2005-09-06 06:24:42 UTC (rev 762)
@@ -754,17 +754,23 @@
} /* __PHYSFS_platformAllocatorInit */
-void *__PHYSFS_platformAllocatorMalloc(size_t s)
+void *__PHYSFS_platformAllocatorMalloc(PHYSFS_uint64 s)
{
+ /* make sure s isn't larger than the address space of the platform... */
+ if ( s > (0xFFFFFFFFFFFFFFFF >> (64-(sizeof (size_t) * 8))) )
+ BAIL_MACRO(ERR_OUT_OF_MEMORY, NULL);
#undef malloc
- return(malloc(s));
+ return(malloc((size_t) s));
} /* __PHYSFS_platformMalloc */
-void *__PHYSFS_platformAllocatorRealloc(void *ptr, size_t s)
+void *__PHYSFS_platformAllocatorRealloc(void *ptr, PHYSFS_uint64 s)
{
+ /* make sure s isn't larger than the address space of the platform... */
+ if ( s > (0xFFFFFFFFFFFFFFFF >> (64-(sizeof (size_t) * 8))) )
+ BAIL_MACRO(ERR_OUT_OF_MEMORY, NULL);
#undef realloc
- return(realloc(ptr, s));
+ return(realloc(ptr, (size_t) s));
} /* __PHYSFS_platformRealloc */
Modified: trunk/platform/pocketpc.c
===================================================================
--- trunk/platform/pocketpc.c 2005-08-20 04:46:25 UTC (rev 761)
+++ trunk/platform/pocketpc.c 2005-09-06 06:24:42 UTC (rev 762)
@@ -672,17 +672,23 @@
} /* __PHYSFS_platformAllocatorInit */
-void *__PHYSFS_platformAllocatorMalloc(size_t s)
+void *__PHYSFS_platformAllocatorMalloc(PHYSFS_uint64 s)
{
+ /* make sure s isn't larger than the address space of the platform... */
+ if ( s > (0xFFFFFFFFFFFFFFFF >> (64-(sizeof (size_t) * 8))) )
+ BAIL_MACRO(ERR_OUT_OF_MEMORY, NULL);
#undef malloc
- return(malloc(s));
+ return(malloc((size_t) s));
} /* __PHYSFS_platformMalloc */
-void *__PHYSFS_platformAllocatorRealloc(void *ptr, size_t s)
+void *__PHYSFS_platformAllocatorRealloc(void *ptr, PHYSFS_uint64 s)
{
+ /* make sure s isn't larger than the address space of the platform... */
+ if ( s > (0xFFFFFFFFFFFFFFFF >> (64-(sizeof (size_t) * 8))) )
+ BAIL_MACRO(ERR_OUT_OF_MEMORY, NULL);
#undef realloc
- return(realloc(ptr, s));
+ return(realloc(ptr, (size_t) s));
} /* __PHYSFS_platformRealloc */
Modified: trunk/platform/posix.c
===================================================================
--- trunk/platform/posix.c 2005-08-20 04:46:25 UTC (rev 761)
+++ trunk/platform/posix.c 2005-09-06 06:24:42 UTC (rev 762)
@@ -514,17 +514,23 @@
} /* __PHYSFS_platformAllocatorInit */
-void *__PHYSFS_platformAllocatorMalloc(size_t s)
+void *__PHYSFS_platformAllocatorMalloc(PHYSFS_uint64 s)
{
+ /* make sure s isn't larger than the address space of the platform... */
+ if ( s > (0xFFFFFFFFFFFFFFFF >> (64-(sizeof (size_t) * 8))) )
+ BAIL_MACRO(ERR_OUT_OF_MEMORY, NULL);
#undef malloc
- return(malloc(s));
+ return(malloc((size_t) s));
} /* __PHYSFS_platformMalloc */
-void *__PHYSFS_platformAllocatorRealloc(void *ptr, size_t s)
+void *__PHYSFS_platformAllocatorRealloc(void *ptr, PHYSFS_uint64 s)
{
+ /* make sure s isn't larger than the address space of the platform... */
+ if ( s > (0xFFFFFFFFFFFFFFFF >> (64-(sizeof (size_t) * 8))) )
+ BAIL_MACRO(ERR_OUT_OF_MEMORY, NULL);
#undef realloc
- return(realloc(ptr, s));
+ return(realloc(ptr, (size_t) s));
} /* __PHYSFS_platformRealloc */
Modified: trunk/platform/skeleton.c
===================================================================
--- trunk/platform/skeleton.c 2005-08-20 04:46:25 UTC (rev 761)
+++ trunk/platform/skeleton.c 2005-09-06 06:24:42 UTC (rev 762)
@@ -246,17 +246,23 @@
} /* __PHYSFS_platformAllocatorInit */
-void *__PHYSFS_platformAllocatorMalloc(size_t s)
+void *__PHYSFS_platformAllocatorMalloc(PHYSFS_uint64 s)
{
+ /* make sure s isn't larger than the address space of the platform... */
+ if ( s > (0xFFFFFFFFFFFFFFFF >> (64-(sizeof (size_t) * 8))) )
+ BAIL_MACRO(ERR_OUT_OF_MEMORY, NULL);
#undef malloc
- return(malloc(s));
+ return(malloc((size_t) s));
} /* __PHYSFS_platformMalloc */
-void *__PHYSFS_platformAllocatorRealloc(void *ptr, size_t s)
+void *__PHYSFS_platformAllocatorRealloc(void *ptr, PHYSFS_uint64 s)
{
+ /* make sure s isn't larger than the address space of the platform... */
+ if ( s > (0xFFFFFFFFFFFFFFFF >> (64-(sizeof (size_t) * 8))) )
+ BAIL_MACRO(ERR_OUT_OF_MEMORY, NULL);
#undef realloc
- return(realloc(ptr, s));
+ return(realloc(ptr, (size_t) s));
} /* __PHYSFS_platformRealloc */
Modified: trunk/platform/win32.c
===================================================================
--- trunk/platform/win32.c 2005-08-20 04:46:25 UTC (rev 761)
+++ trunk/platform/win32.c 2005-09-06 06:24:42 UTC (rev 762)
@@ -1122,17 +1122,23 @@
} /* __PHYSFS_platformAllocatorInit */
-void *__PHYSFS_platformAllocatorMalloc(size_t s)
+void *__PHYSFS_platformAllocatorMalloc(PHYSFS_uint64 s)
{
+ /* make sure s isn't larger than the address space of the platform... */
+ if ( s > (0xFFFFFFFFFFFFFFFF >> (64-(sizeof (size_t) * 8))) )
+ BAIL_MACRO(ERR_OUT_OF_MEMORY, NULL);
#undef malloc
- return(malloc(s));
+ return(malloc((size_t) s));
} /* __PHYSFS_platformMalloc */
-void *__PHYSFS_platformAllocatorRealloc(void *ptr, size_t s)
+void *__PHYSFS_platformAllocatorRealloc(void *ptr, PHYSFS_uint64 s)
{
+ /* make sure s isn't larger than the address space of the platform... */
+ if ( s > (0xFFFFFFFFFFFFFFFF >> (64-(sizeof (size_t) * 8))) )
+ BAIL_MACRO(ERR_OUT_OF_MEMORY, NULL);
#undef realloc
- return(realloc(ptr, s));
+ return(realloc(ptr, (size_t) s));
} /* __PHYSFS_platformRealloc */
More information about the physfs-commits
mailing list