comparison kdiff3/src/gnudiff_xmalloc.cpp @ 66:efe33e938730

0.9.86
author joachim99
date Thu, 16 Sep 2004 02:40:08 +0000
parents 32d5cbf9db71
children 8febbfb1148c
comparison
equal deleted inserted replaced
65:8ea11c8efeb5 66:efe33e938730
56 void * 56 void *
57 GnuDiff::xmalloc (size_t n) 57 GnuDiff::xmalloc (size_t n)
58 { 58 {
59 void *p; 59 void *p;
60 60
61 p = malloc (n); 61 p = malloc (n == 0 ? 1 : n); // There are systems where malloc returns 0 for n==0.
62 if (p == 0) 62 if (p == 0)
63 xalloc_die (); 63 xalloc_die ();
64 return p; 64 return p;
65 } 65 }
66 66
68 with error checking. */ 68 with error checking. */
69 69
70 void * 70 void *
71 GnuDiff::xrealloc (void *p, size_t n) 71 GnuDiff::xrealloc (void *p, size_t n)
72 { 72 {
73 p = realloc (p, n); 73 p = realloc (p, n==0 ? 1 : n);
74 if (p == 0) 74 if (p == 0)
75 xalloc_die (); 75 xalloc_die ();
76 return p; 76 return p;
77 } 77 }
78 78
79 /* Allocate memory for N elements of S bytes, with error checking. */
80
81 void *
82 GnuDiff::xcalloc (size_t n, size_t s)
83 {
84 void *p;
85
86 p = calloc (n, s);
87 if (p == 0)
88 xalloc_die ();
89 return p;
90 }
91 79
92 /* Yield a new block of SIZE bytes, initialized to zero. */ 80 /* Yield a new block of SIZE bytes, initialized to zero. */
93 81
94 void * 82 void *
95 GnuDiff::zalloc (size_t size) 83 GnuDiff::zalloc (size_t size)