/*
- * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved.
+ * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved.
*
* This file is part of libFirm.
*
/* @@@ ToDo: replace this file with the one from liberty.
[reimplement xstrdup, ... ] */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
+#include "config.h"
-#ifdef HAVE_STRING_H
-# include <string.h>
-#endif
-#ifdef HAVE_STDLIB_H
-# include <stdlib.h>
-#endif
+#include <string.h>
+#include <stdlib.h>
#include "xmalloc.h"
#include "error.h"
-static NORETURN xnomem(void) {
+static NORETURN xnomem(void)
+{
panic("out of memory");
}
-void *xmalloc(size_t size) {
+void *xmalloc(size_t size)
+{
void *res = malloc(size);
if (!res) xnomem();
return res;
}
-void *xcalloc(size_t num, size_t size) {
- void *res = calloc(num, size);
-
- if (!res) xnomem();
- return res;
-}
-
-void *xrealloc(void *ptr, size_t size) {
+void *xrealloc(void *ptr, size_t size)
+{
/* ANSI blesses realloc (0, x) but SunOS chokes on it */
void *res = ptr ? realloc (ptr, size) : malloc (size);
return res;
}
-char *xstrdup(const char *str) {
+char *xstrdup(const char *str)
+{
size_t len = strlen (str) + 1;
return memcpy((xmalloc) (len), str, len);
}