X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fadt%2Fxmalloc.c;h=9e547c7c880ba0ebef40fbbe132d472dc0a4fc02;hb=2ce8008369b1dced0ccd07574d91bff82ab773ef;hp=9511978ba137d5eefa6b8c32dc5a57fe42ccfb40;hpb=e3e22fa6f927847099c0bff62457003aa81f2518;p=libfirm diff --git a/ir/adt/xmalloc.c b/ir/adt/xmalloc.c index 9511978ba..9e547c7c8 100644 --- a/ir/adt/xmalloc.c +++ b/ir/adt/xmalloc.c @@ -1,52 +1,63 @@ -/* Xmalloc --- never failing wrappers for malloc() & friends. - Copyright (C) 1995, 1996 Markus Armbruster */ - -/* $Id$ */ +/* + * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved. + * + * This file is part of libFirm. + * + * This file may be distributed and/or modified under the terms of the + * GNU General Public License version 2 as published by the Free Software + * Foundation and appearing in the file LICENSE.GPL included in the + * packaging of this file. + * + * Licensees holding valid libFirm Professional Edition licenses may use + * this file in accordance with the libFirm Commercial License. + * Agreement provided with the Software. + * + * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE + * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE. + */ + +/** + * @file + * @brief implementation of xmalloc & friends + * @author Markus Armbruster + * @version $Id$ + */ /* @@@ ToDo: replace this file with the one from liberty. [reimplement xstrdup, ... ] */ +#include "config.h" -#ifdef HAVE_CONFIG_H -# include -#endif - -#include #include -#include "misc.h" -#include "panic.h" +#include +#include "xmalloc.h" +#include "error.h" -void * -(xmalloc) (size_t size) +static NORETURN xnomem(void) { - void *res = malloc (size); - - if (!res) xnomem (); - return res; + panic("out of memory"); } - -void * -(xrealloc) (void *ptr, size_t size) +void *xmalloc(size_t size) { - /* ANSI blesses realloc (0, x) but SunOS chokes on it */ - void *res = ptr ? realloc (ptr, size) : malloc (size); + void *res = malloc(size); - if (!res) xnomem (); - return res; + if (!res) xnomem(); + return res; } - -char * -(xstrdup) (const char *str) +void *xrealloc(void *ptr, size_t size) { - size_t len = strlen (str) + 1; - return memcpy ((xmalloc) (len), str, len); -} + /* ANSI blesses realloc (0, x) but SunOS chokes on it */ + void *res = ptr ? realloc (ptr, size) : malloc (size); + if (!res) xnomem(); + return res; +} -void -xnomem (void) +char *xstrdup(const char *str) { - panic ("out of memory"); + size_t len = strlen (str) + 1; + return (char*) memcpy(xmalloc(len), str, len); }