gwmem-native.c
上传用户:gzpyjq
上传日期:2013-01-31
资源大小:1852k
文件大小:1k
源码类别:

手机WAP编程

开发平台:

WINDOWS

  1. /*
  2.  * gwmem-native.h - memory managment wrapper functions, native flavor
  3.  *
  4.  * Lars Wirzenius
  5.  */
  6. #include <stdlib.h>
  7. #include <errno.h>
  8. #include <string.h>
  9. #include "gwlib.h"
  10. /* 
  11.  * In this module, we must use the real versions so let's undefine the
  12.  * accident protectors. 
  13.  */
  14. #undef malloc
  15. #undef realloc
  16. #undef free
  17. void *gw_native_noop(void *ptr) { return ptr; }
  18. void *gw_native_malloc(size_t size)
  19. {
  20.     void *ptr;
  21.     /* ANSI C89 says malloc(0) is implementation-defined.  Avoid it. */
  22.     gw_assert(size > 0);
  23.     ptr = malloc(size);
  24.     if (ptr == NULL)
  25.         panic(errno, "Memory allocation failed");
  26.     return ptr;
  27. }
  28. void *gw_native_realloc(void *ptr, size_t size)
  29. {
  30.     void *new_ptr;
  31.     gw_assert(size > 0);
  32.     new_ptr = realloc(ptr, size);
  33.     if (new_ptr == NULL)
  34.         panic(errno, "Memory re-allocation failed");
  35.     return new_ptr;
  36. }
  37. void gw_native_free(void *ptr)
  38. {
  39.     free(ptr);
  40. }
  41. char *gw_native_strdup(const char *str)
  42. {
  43.     char *copy;
  44.     gw_assert(str != NULL);
  45.     copy = gw_native_malloc(strlen(str) + 1);
  46.     strcpy(copy, str);
  47.     return copy;
  48. }