Fixes crash when running without external shell32.dll.
[wine/multimedia.git] / misc / xmalloc.c
blob0e757e88203a233f7915d8efbf10b129d16b4dca
1 /*
2 xmalloc - a safe malloc
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.
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).
12 Copyright 1995 by Morten Welinder.
16 #include <stdlib.h>
17 #include <string.h>
18 #include "xmalloc.h"
19 #include "debug.h"
21 void *xmalloc( int size )
23 void *res;
25 res = malloc (size ? size : 1);
26 if (res == NULL)
28 MSG("Virtual memory exhausted.\n");
29 exit (1);
31 memset(res,0,size);
32 return res;
35 void *xcalloc( int size )
37 void *res;
39 res = xmalloc (size);
40 memset(res,0,size);
41 return res;
45 void *xrealloc( void *ptr, int size )
47 void *res = realloc (ptr, size);
48 if ((res == NULL) && size)
50 MSG("Virtual memory exhausted.\n");
51 exit (1);
53 return res;
57 char *xstrdup( const char *str )
59 char *res = strdup( str );
60 if (!res)
62 MSG("Virtual memory exhausted.\n");
63 exit (1);
65 return res;