summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsrc/syncml_tk/src/sml/inc/smldef.h3
-rwxr-xr-xsrc/syncml_tk/src/sml/lib/all/libmem.c13
-rwxr-xr-xsrc/syncml_tk/src/sml/lib/inc/libmem.h10
3 files changed, 24 insertions, 2 deletions
diff --git a/src/syncml_tk/src/sml/inc/smldef.h b/src/syncml_tk/src/sml/inc/smldef.h
index 10d5839..557db55 100755
--- a/src/syncml_tk/src/sml/inc/smldef.h
+++ b/src/syncml_tk/src/sml/inc/smldef.h
@@ -99,13 +99,14 @@ typedef Byte_t Boolean_t; /**< a boolean */
typedef Short_t Ret_t; /**< Return Type of API Commands */
-typedef Long_t Length_t; /**< System dependent string length */
typedef Short_t MemHandle_t; /**< Memory object Handle */
typedef unsigned char *MemPtr_t; /**< Memory object Pointer */
typedef void *VoidPtr_t; /**< Void Pointer */
#ifdef HAVE_STDINT_H
+typedef uintptr_t Length_t; /**< System dependent string length */
typedef uintptr_t MemSize_t; /**< System dependent memory object size */
#else
+typedef Long_t Length_t; /**< System dependent string length */
typedef Long_t MemSize_t; /**< System dependent memory object size */
#endif
typedef unsigned char MemByte_t; /**< Memory element */
diff --git a/src/syncml_tk/src/sml/lib/all/libmem.c b/src/syncml_tk/src/sml/lib/all/libmem.c
index fdb720a..8285cfe 100755
--- a/src/syncml_tk/src/sml/lib/all/libmem.c
+++ b/src/syncml_tk/src/sml/lib/all/libmem.c
@@ -56,6 +56,18 @@
#include "MemoryMgr.h"
#endif
+#ifdef SML_LIB_MEMORY_FUNCTION_POINTERS
+
+void *(*smlLibRealloc)(void *pObject, MemSize_t size) = realloc;
+void (*smlLibFree)(void *pObject) = free;
+void *(*smlLibMemset)(void *pObject, int value, MemSize_t count) = memset;
+void *(*smlLibMemcpy)(void *pTarget, const void *pSource, MemSize_t count) = memcpy;
+void *(*smlLibMemmove)(void *pTarget, const void *pSource, MemSize_t count) = memmove;
+int (*smlLibMemcmp)(const void *pTarget, const void *pSource, MemSize_t count) = memcmp;
+void *(*smlLibMalloc)(MemSize_t size) = malloc;
+
+#else /* SML_LIB_MEMORY_FUNCTION_POINTERS */
+
#ifdef MEMORY_PROFILING
// %%% luz 2002-10-02
#include "profiling.h"
@@ -185,3 +197,4 @@ SML_API void *smlLibMalloc(MemSize_t size) {
+#endif /* SML_LIB_MEMORY_FUNCTION_POINTERS */
diff --git a/src/syncml_tk/src/sml/lib/inc/libmem.h b/src/syncml_tk/src/sml/lib/inc/libmem.h
index 95be40a..a5cd5c1 100755
--- a/src/syncml_tk/src/sml/lib/inc/libmem.h
+++ b/src/syncml_tk/src/sml/lib/inc/libmem.h
@@ -73,7 +73,15 @@
*************************************************************************/
-#ifdef __PALM_OS__ /* we use #define to reduce heap usage */
+#ifdef SML_LIB_MEMORY_FUNCTION_POINTERS
+extern void *(*smlLibRealloc)(void *pObject, MemSize_t size);
+extern void (*smlLibFree)(void *pObject);
+extern void *(*smlLibMemset)(void *pObject, int value, MemSize_t count);
+extern void *(*smlLibMemcpy)(void *pTarget, const void *pSource, MemSize_t count);
+extern void *(*smlLibMemmove)(void *pTarget, const void *pSource, MemSize_t count);
+extern int (*smlLibMemcmp)(const void *pTarget, const void *pSource, MemSize_t count);
+extern void *(*smlLibMalloc)(MemSize_t size);
+#elif defined __PALM_OS__ /* we use #define to reduce heap usage */
void *smlLibRealloc (VoidPtr_t objectP, MemSize_t constSize) LIB_FUNC;
void smlLibFree (void* objectP) LIB_FUNC;
#define smlLibMemset(pObject,value,count) ((void)MemSet((VoidPtr_t)pObject,(MemSize_t)count,(int)value))