diff options
Diffstat (limited to 'src/pulse/xmalloc.c')
-rw-r--r-- | src/pulse/xmalloc.c | 45 |
1 files changed, 25 insertions, 20 deletions
diff --git a/src/pulse/xmalloc.c b/src/pulse/xmalloc.c index 36755166..90237013 100644 --- a/src/pulse/xmalloc.c +++ b/src/pulse/xmalloc.c @@ -1,18 +1,18 @@ -/* $Id$ */ - /*** This file is part of PulseAudio. - + + Copyright 2004-2006 Lennart Poettering + PulseAudio is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. - + PulseAudio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU Lesser General Public License along with PulseAudio; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 @@ -25,12 +25,13 @@ #include <stdlib.h> #include <signal.h> -#include <assert.h> #include <unistd.h> #include <string.h> +#include <errno.h> +#include <pulse/gccmacro.h> #include <pulsecore/core-util.h> -#include <pulsecore/gccmacro.h> +#include <pulsecore/macro.h> #include "xmalloc.h" @@ -58,31 +59,31 @@ static void oom(void) { void* pa_xmalloc(size_t size) { void *p; - assert(size > 0); - assert(size < MAX_ALLOC_SIZE); - + pa_assert(size > 0); + pa_assert(size < MAX_ALLOC_SIZE); + if (!(p = malloc(size))) oom(); - + return p; } void* pa_xmalloc0(size_t size) { void *p; - assert(size > 0); - assert(size < MAX_ALLOC_SIZE); - + pa_assert(size > 0); + pa_assert(size < MAX_ALLOC_SIZE); + if (!(p = calloc(1, size))) oom(); - + return p; } - + void *pa_xrealloc(void *ptr, size_t size) { void *p; - assert(size > 0); - assert(size < MAX_ALLOC_SIZE); - + pa_assert(size > 0); + pa_assert(size < MAX_ALLOC_SIZE); + if (!(p = realloc(ptr, size))) oom(); return p; @@ -107,7 +108,7 @@ char *pa_xstrdup(const char *s) { char *pa_xstrndup(const char *s, size_t l) { char *e, *r; - + if (!s) return NULL; @@ -121,8 +122,12 @@ char *pa_xstrndup(const char *s, size_t l) { } void pa_xfree(void *p) { + int saved_errno; + if (!p) return; + saved_errno = errno; free(p); + errno = saved_errno; } |