home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / EFFO / pd7.lzh / SRC / xmalloc.c < prev    next >
Text File  |  1990-02-11  |  670b  |  46 lines

  1. /*
  2.  * A safer saner malloc, for careless programmers
  3.  * $Revision: 6.1 $
  4.  */
  5.  
  6. #include <stdio.h>
  7. #include <curses.h>
  8.  
  9. extern char *malloc();
  10.  
  11. #ifdef SYSV3
  12. extern void free();
  13. extern void exit();
  14. #endif
  15.  
  16. char *
  17. xmalloc(n)
  18. unsigned n;
  19. {
  20. register char *ptr;
  21.  
  22. if ((ptr = malloc(n + sizeof(double))) == NULL)
  23.     fatal("xmalloc: no memory");
  24. *((int *) ptr) = 12345;        /* magic number */
  25. return(ptr + sizeof(double));
  26. }
  27.  
  28. xfree(p)
  29. char *p;
  30. {
  31. if (p == NULL)
  32.     fatal("xfree: NULL");
  33. p -= sizeof(double);
  34. if (*((int *) p) != 12345)
  35.     fatal("xfree: storage not malloc'ed");
  36. free(p);
  37. }
  38.  
  39. fatal(str)
  40. char *str;
  41. {
  42.     deraw();
  43.     (void) fprintf(stderr,"%s\n", str);
  44.     exit(1);
  45. }
  46.