/* no system header should be loaded out of this file so that we have only */
/* one file to check when porting to another OS */
-/* Copyright (c) 2004-2019. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2004-2021. The SimGrid Team. All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
#include <xbt/asserts.h>
#include <xbt/log.h>
-#include <xbt/misc.h>
#include <simgrid/config.h>
SG_BEGIN_DECL
-/* They live in asserts.h, but need to be declared before this module.
- double declaration to cut dependency cycle */
-/**
- * @addtogroup XBT_error
- *
- * @{
- */
-/** @brief Kill the program in silence */
-XBT_ATTRIB_NORETURN XBT_PUBLIC void xbt_abort(void);
-
-/**
- * @brief Kill the program with an error message
- * @param ... a format string and its arguments
- *
- * Things are so messed up that the only thing to do now, is to stop the program.
- *
- * The message is handled by a CRITICAL logging request, and may consist of a format string with arguments.
- */
-#define xbt_die(...) \
- do { \
- XBT_CCRITICAL(xbt, __VA_ARGS__); \
- xbt_abort(); \
- } while (0)
-/** @} */
-
#ifdef XBT_LOG_LOCALLY_DEFINE_XBT_CHANNEL
XBT_LOG_NEW_CATEGORY(xbt, "All XBT categories (simgrid toolbox)");
XBT_LOG_NEW_SUBCATEGORY(xbt_help, xbt, "Help messages");
char *res = NULL;
if (s) {
res = strdup(s);
- if (!res)
- xbt_die("memory allocation error (strdup returned NULL)");
+ xbt_assert(res, "memory allocation error (strdup returned NULL)");
}
return res;
}
@hideinitializer */
static XBT_ALWAYS_INLINE void *xbt_malloc(size_t n) {
void* res = malloc(n);
- if (!res)
- xbt_die("Memory allocation of %lu bytes failed", (unsigned long)n);
+ xbt_assert(res, "Memory allocation of %lu bytes failed", (unsigned long)n);
return res;
}
@hideinitializer */
static XBT_ALWAYS_INLINE void *xbt_malloc0(size_t n) {
void* res = calloc(n, 1);
- if (!res)
- xbt_die("Memory callocation of %lu bytes failed", (unsigned long)n);
+ xbt_assert(res, "Memory callocation of %lu bytes failed", (unsigned long)n);
return res;
}
if (s) {
if (p) {
res = realloc(p, s);
- if (!res)
- xbt_die("memory (re)allocation of %lu bytes failed", (unsigned long)s);
+ xbt_assert(res, "memory (re)allocation of %lu bytes failed", (unsigned long)s);
} else {
res = xbt_malloc(s);
}