Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. #include "fitz.h"
  2.  
  3. void *
  4. fz_malloc(int size)
  5. {
  6.         void *p = malloc(size);
  7.         if (!p)
  8.         {
  9.                 fprintf(stderr, "fatal error: out of memory\n");
  10.                 abort();
  11.         }
  12.         return p;
  13. }
  14.  
  15. void *
  16. fz_calloc(int count, int size)
  17. {
  18.         void *p;
  19.  
  20.         if (count == 0 || size == 0)
  21.                 return 0;
  22.  
  23.         if (count < 0 || size < 0 || count > INT_MAX / size)
  24.         {
  25.                 fprintf(stderr, "fatal error: out of memory (integer overflow)\n");
  26.                 abort();
  27.         }
  28.  
  29.         p = malloc(count * size);
  30.         if (!p)
  31.         {
  32.                 fprintf(stderr, "fatal error: out of memory\n");
  33.                 abort();
  34.         }
  35.         return p;
  36. }
  37.  
  38. void *
  39. fz_realloc(void *p, int count, int size)
  40. {
  41.         void *np;
  42.  
  43.         if (count == 0 || size == 0)
  44.         {
  45.                 fz_free(p);
  46.                 return 0;
  47.         }
  48.  
  49.         if (count < 0 || size < 0 || count > INT_MAX / size)
  50.         {
  51.                 fprintf(stderr, "fatal error: out of memory (integer overflow)\n");
  52.                 abort();
  53.         }
  54.  
  55.         np = realloc(p, count * size);
  56.         if (np == NULL)
  57.         {
  58.                 fprintf(stderr, "fatal error: out of memory\n");
  59.                 abort();
  60.         }
  61.         return np;
  62. }
  63.  
  64. void
  65. fz_free(void *p)
  66. {
  67.         free(p);
  68. }
  69.  
  70. char *
  71. fz_strdup(char *s)
  72. {
  73.         int len = strlen(s) + 1;
  74.         char *ns = fz_malloc(len);
  75.         memcpy(ns, s, len);
  76.         return ns;
  77. }
  78.