Release 980201
[wine] / misc / xmalloc.c
1 /*
2    xmalloc - a safe malloc
3
4    Use this function instead of malloc whenever you don't intend to check
5    the return value yourself, for instance because you don't have a good
6    way to handle a zero return value.
7
8    Typically, Wine's own memory requests should be handled by this function,
9    while the clients should use malloc directly (and Wine should return an
10    error to the client if allocation fails).
11
12    Copyright 1995 by Morten Welinder.
13
14 */
15
16 #include <stdio.h>
17 #include <stdlib.h>
18 #include <string.h>
19 #include "xmalloc.h"
20
21 void *xmalloc( int size )
22 {
23     void *res;
24
25     res = malloc (size ? size : 1);
26     if (res == NULL)
27     {
28         fprintf (stderr, "Virtual memory exhausted.\n");
29         exit (1);
30     }
31     return res;
32 }
33
34
35 void *xrealloc( void *ptr, int size )
36 {
37     void *res = realloc (ptr, size);
38     if ((res == NULL) && size)
39     {
40         fprintf (stderr, "Virtual memory exhausted.\n");
41         exit (1);
42     }
43     return res;
44 }
45
46
47 char *xstrdup( const char *str )
48 {
49     char *res = strdup( str );
50     if (!res)
51     {
52         fprintf (stderr, "Virtual memory exhausted.\n");
53         exit (1);
54     }
55     return res;
56 }