Remove splint tags.
[platform/upstream/rpm.git] / rpmio / rpmmalloc.c
1 /** \ingroup rpmio
2  * \file rpmio/rpmmalloc.c
3  */
4
5 #include "system.h"
6 #include "debug.h"
7
8 #if !defined(EXIT_FAILURE)
9 #define EXIT_FAILURE    1
10 #endif
11
12 void *vmefail(size_t size)
13 {
14     fprintf(stderr, _("memory alloc (%u bytes) returned NULL.\n"), (unsigned)size);
15     exit(EXIT_FAILURE);
16     return NULL;
17 }
18
19 #if !(HAVE_MCHECK_H && defined(__GNUC__))
20
21 void * xmalloc (size_t size)
22 {
23     register void *value;
24     if (size == 0) size++;
25     value = malloc (size);
26     if (value == 0)
27         value = vmefail(size);
28     return value;
29 }
30
31 void * xcalloc (size_t nmemb, size_t size)
32 {
33     register void *value;
34     if (size == 0) size++;
35     if (nmemb == 0) nmemb++;
36     value = calloc (nmemb, size);
37     if (value == 0)
38         value = vmefail(size);
39     return value;
40 }
41
42 void * xrealloc (void *ptr, size_t size)
43 {
44     register void *value;
45     if (size == 0) size++;
46     value = realloc (ptr, size);
47     if (value == 0)
48         value = vmefail(size);
49     return value;
50 }
51
52 char * xstrdup (const char *str)
53 {
54     size_t size = strlen(str) + 1;
55     char *newstr = (char *) malloc (size);
56     if (newstr == 0)
57         newstr = (char *) vmefail(size);
58     strcpy (newstr, str);
59     return newstr;
60 }
61
62 #endif  /* !(HAVE_MCHECK_H && defined(__GNUC__)) */