diff options
| author | Pierre Ossman <ossman@cendio.se> | 2006-05-17 16:34:18 +0000 | 
|---|---|---|
| committer | Pierre Ossman <ossman@cendio.se> | 2006-05-17 16:34:18 +0000 | 
| commit | d9cc2cfcb97c1b0449bcbfb6ab0301a58d77bd55 (patch) | |
| tree | b8b0fc3704b923a5ee8f556db05ace212be392a7 /src/polypcore/xmalloc.c | |
| parent | cdd3588f3a0fc9efeff7ce85215304bf33e2504e (diff) | |
Move xmalloc to the public side (libpolyp).
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@908 fefdeb5f-60dc-0310-8127-8f9354f1896f
Diffstat (limited to 'src/polypcore/xmalloc.c')
| -rw-r--r-- | src/polypcore/xmalloc.c | 123 | 
1 files changed, 0 insertions, 123 deletions
diff --git a/src/polypcore/xmalloc.c b/src/polypcore/xmalloc.c deleted file mode 100644 index 4c8689a6..00000000 --- a/src/polypcore/xmalloc.c +++ /dev/null @@ -1,123 +0,0 @@ -/* $Id$ */ - -/*** -  This file is part of polypaudio. -  -  polypaudio 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. -  -  polypaudio 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 polypaudio; if not, write to the Free Software -  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 -  USA. -***/ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include <stdlib.h> -#include <signal.h> -#include <assert.h> -#include <unistd.h> -#include <string.h> - -#include <polypcore/util.h> -#include <polypcore/gccmacro.h> - -#include "xmalloc.h" - -/* Make sure not to allocate more than this much memory. */ -#define MAX_ALLOC_SIZE (1024*1024*20) /* 20MB */ - -/* #undef malloc */ -/* #undef free */ -/* #undef realloc */ -/* #undef strndup */ -/* #undef strdup */ - -static void oom(void) PA_GCC_NORETURN; - -/** called in case of an OOM situation. Prints an error message and - * exits */ -static void oom(void) { -    static const char e[] = "Not enough memory\n"; -    pa_loop_write(STDERR_FILENO, e, sizeof(e)-1); -#ifdef SIGQUIT -    raise(SIGQUIT); -#endif -    _exit(1); -} - -void* pa_xmalloc(size_t size) { -    void *p; -    assert(size > 0); -    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); -     -    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); -     -    if (!(p = realloc(ptr, size))) -        oom(); -    return p; -} - -void* pa_xmemdup(const void *p, size_t l) { -    if (!p) -        return NULL; -    else { -        char *r = pa_xmalloc(l); -        memcpy(r, p, l); -        return r; -    } -} - -char *pa_xstrdup(const char *s) { -    if (!s) -        return NULL; - -    return pa_xmemdup(s, strlen(s)+1); -} - -char *pa_xstrndup(const char *s, size_t l) { -    if (!s) -        return NULL; -    else { -        char *r; -        size_t t = strlen(s); - -        if (t > l) -            t = l; -         -        r = pa_xmemdup(s, t+1); -        r[t] = 0; -        return r; -    } -} -  | 
