rpm
4.5
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
rpmio
rpmmalloc.c
Go to the documentation of this file.
1
5
#include "
system.h
"
6
#include "
debug.h
"
7
8
#if !defined(EXIT_FAILURE)
9
#define EXIT_FAILURE 1
10
#endif
11
12
/*@-modfilesys@*/
13
/*@only@*/
void
*
vmefail
(
size_t
size)
14
{
15
fprintf(stderr,
_
(
"memory alloc (%u bytes) returned NULL.\n"
), (
unsigned
)size);
16
exit(
EXIT_FAILURE
);
17
/*@notreached@*/
18
return
NULL;
19
}
20
/*@=modfilesys@*/
21
22
#if !(HAVE_MCHECK_H && defined(__GNUC__)) && !defined(__LCLINT__)
23
24
/*@out@*/
/*@only@*/
void
*
xmalloc
(
size_t
size)
25
{
26
register
void
*value;
27
if
(size == 0) size++;
28
value = malloc (size);
29
if
(value == 0)
30
value =
vmefail
(size);
31
return
value;
32
}
33
34
/*@only@*/
void
*
xcalloc
(
size_t
nmemb,
size_t
size)
35
{
36
register
void
*value;
37
if
(size == 0) size++;
38
if
(nmemb == 0) nmemb++;
39
value = calloc (nmemb, size);
40
if
(value == 0)
41
value =
vmefail
(size);
42
return
value;
43
}
44
45
/*@only@*/
void
*
xrealloc
(
/*@only@*/
void
*ptr,
size_t
size)
46
{
47
register
void
*value;
48
if
(size == 0) size++;
49
value = realloc (ptr, size);
50
if
(value == 0)
51
value =
vmefail
(size);
52
return
value;
53
}
54
55
/*@only@*/
char
*
xstrdup
(
const
char
*str)
56
{
57
size_t
size = strlen(str) + 1;
58
char
*newstr = (
char
*) malloc (size);
59
if
(newstr == 0)
60
newstr = (
char
*)
vmefail
(size);
61
strcpy (newstr, str);
62
return
newstr;
63
}
64
65
#endif
/* !(HAVE_MCHECK_H && defined(__GNUC__)) */
Generated on Tue Aug 28 2012 18:13:36 for rpm by
1.8.2