X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fadt%2Fxmalloc.h;h=30925b98960a668d8bafd111d90e752643a08452;hb=8c62d67c5bd49d4df5534d8441d589d81eace851;hp=4ddc4d7f3cc80928beb90fd6e2c8cc2bb82b3c0d;hpb=14fc50785ca534511c6e34a469d84788e7598e87;p=libfirm diff --git a/ir/adt/xmalloc.h b/ir/adt/xmalloc.h index 4ddc4d7f3..30925b989 100644 --- a/ir/adt/xmalloc.h +++ b/ir/adt/xmalloc.h @@ -1,54 +1,53 @@ /* - * Project: libFIRM - * File name: ir/adt/xmalloc.h - * Purpose: More comfortable allocations. - * Author: Markus Armbruster - * Modified by: - * Created: 1999 by getting from fiasco - * CVS-ID: $Id$ - * Copyright: (c) 1995, 1996 Markus Armbruster - * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE. + * Copyright (C) 1995-2007 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 never failing wrappers for malloc() & friends. + * @author Markus Armbruster + * @version $Id$ + * @note The functions here never fail because they simply abort your + * program in case of an error. + */ +#ifndef FIRM_ADT_XMALLOC_H +#define FIRM_ADT_XMALLOC_H -#ifndef _XMALLOC_H_ -#define _XMALLOC_H_ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#ifdef HAVE_ALLOCA_H -#include -#endif -#ifdef HAVE_MALLOC_H -#include -#endif - -#include "host.h" +#include -/* xmalloc() & friends. +/* xmalloc() & friends. */ - The macros set tmalloc_tag to __FILE__, the functions leave it - alone. Use the latter if you set it yourself. See tmalloc.c for - details. */ +void *xmalloc(size_t size); +void *xcalloc(size_t num, size_t size); +void *xrealloc(void *ptr, size_t size); +char *xstrdup(const char *str); +void free(void *ptr); -extern void *xmalloc (size_t); -extern void *xrealloc (void *, size_t); -extern char *xstrdup (const char *); -extern void xnomem (void); -extern void free (void *); +#define xfree(ptr) free(ptr) -# define xmalloc(size) (XMALLOC_TRACE (xmalloc) ((size))) -# define xrealloc(ptr, size) (XMALLOC_TRACE (xrealloc) ((ptr), (size))) -# define xstrdup(str) (XMALLOC_TRACE (xstrdup) ((str))) -# define xfree(ptr) (XMALLOC_TRACE free ((ptr))) -#if defined(HAVE_GNU_MALLOC) && defined(DEBUG) -extern const char *tmalloc_tag; -# define XMALLOC_TRACE tmalloc_tag = __FILE__, +/* Includes for alloca() */ +#if defined(__FreeBSD__) +#include +#elif defined(_WIN32) +#include #else -# define XMALLOC_TRACE +#include #endif -#endif /* _XMALLOC_H_ */ +#endif