Quellcode durchsuchen

* Wrapped some more memory functions

svn: 1303
Bryan Drewery vor 22 Jahren
Ursprung
Commit
a1fb5f0470
2 geänderte Dateien mit 49 neuen und 0 gelöschten Zeilen
  1. 43 0
      src/compat/memutil.c
  2. 6 0
      src/compat/memutil.h

+ 43 - 0
src/compat/memutil.c

@@ -1,6 +1,49 @@
 #include <stdlib.h>
 #include <stdlib.h>
 #include <string.h>
 #include <string.h>
 #include "memcpy.h"
 #include "memcpy.h"
+#include "src/main.h"
+
+extern void * __real_malloc(size_t);
+extern void * __real_realloc(void *, size_t);
+
+void *
+__wrap_malloc(size_t size)
+{
+  void *x = NULL;
+
+  x = (void *) __real_malloc(size);
+  if (x == NULL)
+    fatal("Memory allocation failed", 0);
+
+  return x;
+}
+
+void *
+__wrap_realloc(void *ptr, size_t size)
+{
+  void *x = NULL;
+
+  if (ptr == NULL)
+    return malloc(size);
+
+  x = (void *) __real_realloc(ptr, size);
+  if (x == NULL && size > 0)
+    fatal("Memory re-allocation failed", 0);
+
+  return x;
+}
+
+void *
+__wrap_calloc(size_t nmemb, size_t size)
+{
+  void *x = NULL;
+
+  x = (void *) malloc(nmemb * size);
+  if (x)
+    egg_bzero(x, nmemb * size);
+
+  return x;
+}
 
 
 void 
 void 
 __wrap_str_redup(char **str, const char *newstr)
 __wrap_str_redup(char **str, const char *newstr)

+ 6 - 0
src/compat/memutil.h

@@ -1,9 +1,15 @@
 #ifndef _MEMUTIL_H
 #ifndef _MEMUTIL_H
 #define _MEMUTIL_H
 #define _MEMUTIL_H
 
 
+#undef malloc
+#undef realloc
+#undef calloc
 #undef str_redup
 #undef str_redup
 #undef strdup
 #undef strdup
 
 
+void *malloc(size_t);
+void *realloc(void *, size_t);
+void *calloc(size_t, size_t);
 void str_redup(char **, const char *);
 void str_redup(char **, const char *);
 char *strdup(const char *);
 char *strdup(const char *);