]>
code.delx.au - pulseaudio/blob - polyp/xmalloc.c
4 This file is part of polypaudio.
6 polypaudio is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published
8 by the Free Software Foundation; either version 2 of the License,
9 or (at your option) any later version.
11 polypaudio is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with polypaudio; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
33 #define MAX_ALLOC_SIZE (1024*1024*20)
41 static void oom(void) {
42 static const char e
[] = "Not enough memory\n";
43 pa_loop_write(2, e
, sizeof(e
)-1);
48 void* pa_xmalloc(size_t size
) {
51 assert(size
< MAX_ALLOC_SIZE
);
53 if (!(p
= malloc(size
)))
59 void* pa_xmalloc0(size_t size
) {
62 assert(size
< MAX_ALLOC_SIZE
);
64 if (!(p
= calloc(1, size
)))
70 void *pa_xrealloc(void *ptr
, size_t size
) {
73 assert(size
< MAX_ALLOC_SIZE
);
75 if (!(p
= realloc(ptr
, size
)))
80 void* pa_xmemdup(const void *p
, size_t l
) {
84 char *r
= pa_xmalloc(l
);
90 char *pa_xstrdup(const char *s
) {
94 return pa_xmemdup(s
, strlen(s
)+1);
97 char *pa_xstrndup(const char *s
, size_t l
) {
102 size_t t
= strlen(s
);
107 r
= pa_xmemdup(s
, t
+1);