[Scummvm-cvs-logs] SF.net SVN: scummvm: [20563] scummvm/trunk/backends/PalmOS/Src/missing
chrilith at users.sourceforge.net
chrilith at users.sourceforge.net
Sat Feb 11 10:32:01 CET 2006
Revision: 20563
Author: chrilith
Date: 2006-02-11 10:31:05 -0800 (Sat, 11 Feb 2006)
ViewCVS: http://svn.sourceforge.net/scummvm?rev=20563&view=rev
Log Message:
-----------
- Get rid of MemGluePtrNew
- Fixed exit function in ARM mode
- Fixed C++ compilation
Modified Paths:
--------------
scummvm/trunk/backends/PalmOS/Src/missing/_stdlib.cpp
scummvm/trunk/backends/PalmOS/Src/missing/stdlib.h
Modified: scummvm/trunk/backends/PalmOS/Src/missing/_stdlib.cpp
===================================================================
--- scummvm/trunk/backends/PalmOS/Src/missing/_stdlib.cpp 2006-02-11 18:28:02 UTC (rev 20562)
+++ scummvm/trunk/backends/PalmOS/Src/missing/_stdlib.cpp 2006-02-11 18:31:05 UTC (rev 20563)
@@ -1,6 +1,7 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2001 Ludvig Strigeus
* Copyright (C) 2001-2006 The ScummVM project
+ * Copyright (C) 2002-2006 Chris Apers - PalmOS Backend
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -23,6 +24,9 @@
#include <stdlib.h>
+#define memNewChunkFlagAllowLarge 0x1000
+extern "C" SysAppInfoPtr SysGetAppInfo(SysAppInfoPtr *uiAppPP, SysAppInfoPtr *actionCodeAppPP) SYS_TRAP(sysTrapSysGetAppInfo);
+
void *bsearch(const void *key, const void *base, UInt32 nmemb, UInt32 size, int (*compar)(const void *, const void *)) {
#ifdef PALMOS_68K
Int32 position;
@@ -52,11 +56,30 @@
return val;
}
+MemPtr __malloc(UInt32 size) {
+ MemPtr newP = NULL;
+
+ if (size <= 65000) {
+ newP = MemPtrNew(size);
+ } else {
+ SysAppInfoPtr appInfoP;
+ UInt16 ownerID;
+ UInt16 attr;
+
+ ownerID = ((SysAppInfoPtr)SysGetAppInfo(&appInfoP, &appInfoP))->memOwnerID;
+ attr = ownerID|memNewChunkFlagAllowLarge|memNewChunkFlagNonMovable;
+
+ newP = MemChunkNew(0, size, attr);
+ }
+
+ return newP;
+}
+
MemPtr calloc(UInt32 nelem, UInt32 elsize) {
MemPtr newP;
- UInt32 size = nelem*elsize;
+ UInt32 size = (nelem * elsize);
- newP = MemGluePtrNew(size);
+ newP = malloc(size); // was MemGluePtrNew
if (newP)
MemSet(newP,size,0);
@@ -71,18 +94,17 @@
}
MemPtr realloc(MemPtr oldP, UInt32 size) {
-
if (oldP != NULL)
- if (MemPtrResize(oldP,size) == 0)
+ if (MemPtrResize(oldP, size) == 0)
return oldP;
- MemPtr newP = MemPtrNew(size);
-
- if (oldP!=NULL)
- {
+ MemPtr newP = malloc(size); // was MemPtrNew
+
+ if (oldP!=NULL) {
MemMove(newP,oldP,MemPtrSize(oldP));
MemPtrFree(oldP);
- }
+ }
+
return newP;
}
@@ -90,12 +112,12 @@
#define ERR_MAGIC 0xDADA
void exit(Int16 status) {
-#ifdef PALMOS_68K
+#if (defined(PALMOS_ARM) && defined(COMPILE_ZODIAC))
+ SysEventType event;
+ event.eType = sysEventKeyDownEvent;
+#else
EventType event;
event.eType = keyDownEvent;
-#else
- SysEventType event;
- event.eType = sysEventKeyDownEvent;
#endif
event.data.keyDown.chr = vchrLaunch;
event.data.keyDown.modifiers = commandKeyMask;
Modified: scummvm/trunk/backends/PalmOS/Src/missing/stdlib.h
===================================================================
--- scummvm/trunk/backends/PalmOS/Src/missing/stdlib.h 2006-02-11 18:28:02 UTC (rev 20562)
+++ scummvm/trunk/backends/PalmOS/Src/missing/stdlib.h 2006-02-11 18:31:05 UTC (rev 20563)
@@ -1,6 +1,7 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2001 Ludvig Strigeus
* Copyright (C) 2001-2006 The ScummVM project
+ * Copyright (C) 2002-2006 Chris Apers - PalmOS Backend
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -30,10 +31,18 @@
#include "MemGlue.h"
#endif
-#if defined(COMPILE_ZODIAC) && defined(PALMOS_ARM)
-#define MemGluePtrNew MemPtrNew
+#ifdef __cplusplus
+extern "C" {
#endif
+#if defined(COMPILE_ZODIAC)
+# define malloc MemPtrNew
+#elif defined(COMPILE_OS5) && defined(PALMOS_ARM)
+# define malloc __malloc
+#else
+# define malloc MemGluePtrNew
+#endif
+
extern ErrJumpBuf stdlib_errJumpBuf;
#define DO_EXIT( code ) \
@@ -42,13 +51,12 @@
#define atoi StrAToI
#define atol StrAToI
#define abs(a) ((a) < 0 ? -(a) : (a))
-#define malloc(a) MemGluePtrNew(a)
#ifdef PALMOS_68K
-#define qsort(a,b,c,d) SysQSort((a), (b), (c), (CmpFuncPtr)(&d), 0);
+# define qsort(a,b,c,d) SysQSort((a), (b), (c), (CmpFuncPtr)(&d), 0);
#else
-typedef int (*_compare_function)(const void*, const void*);
-extern "C" void qsort(void * table_base, size_t num_members, size_t member_size, _compare_function compare_members);
+ typedef int (*_compare_function)(const void*, const void*);
+ void qsort(void * table_base, UInt32 num_members, UInt32 member_size, _compare_function compare_members);
#endif
#define rand() SysRandom(0)
@@ -56,10 +64,15 @@
#define strtoul(a,b,c) ((unsigned long)strtol(a,b,c))
void *bsearch (const void *key, const void *base, UInt32 nmemb, UInt32 size, int (*compar)(const void *, const void *));
+MemPtr __malloc (UInt32);
MemPtr calloc (UInt32 nelem, UInt32 elsize);
void exit (Int16 status);
Err free (MemPtr memP);
MemPtr realloc (MemPtr oldP, UInt32 size);
long strtol (const char *s, char **endptr, int base);
+#ifdef __cplusplus
+}
#endif
+
+#endif
More information about the Scummvm-git-logs
mailing list