Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Some extra check to ensure portability
authormquinson <mquinson@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Thu, 5 Jun 2008 14:34:18 +0000 (14:34 +0000)
committermquinson <mquinson@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Thu, 5 Jun 2008 14:34:18 +0000 (14:34 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@5546 48e7efb5-ca39-0410-a469-dd3cf9ba447f

include/xbt/sysdep.h

index a0421e4..8b5c807 100644 (file)
@@ -17,7 +17,7 @@
    
 #include "xbt/misc.h"
 #include "xbt/asserts.h"
    
 #include "xbt/misc.h"
 #include "xbt/asserts.h"
-  
+
 SG_BEGIN_DECL()
 
 /* They live in asserts.h, but need to be declared before this module.
 SG_BEGIN_DECL()
 
 /* They live in asserts.h, but need to be declared before this module.
@@ -59,7 +59,9 @@ static XBT_INLINE char *xbt_strdup(const char *s) {
 /** @brief Like malloc, but xbt_die() on error 
     @hideinitializer */
 static XBT_INLINE void *xbt_malloc(unsigned int n){
 /** @brief Like malloc, but xbt_die() on error 
     @hideinitializer */
 static XBT_INLINE void *xbt_malloc(unsigned int n){
-  void *res=malloc(n);
+  void *res;
+  if (n==0) xbt_die("malloc(0) is not portable");
+  res=malloc(n);
   if (!res)
      xbt_die(bprintf("Memory allocation of %d bytes failed",n));
   return res;
   if (!res)
      xbt_die(bprintf("Memory allocation of %d bytes failed",n));
   return res;
@@ -68,7 +70,9 @@ static XBT_INLINE void *xbt_malloc(unsigned int n){
 /** @brief like malloc, but xbt_die() on error and memset data to 0
     @hideinitializer */
 static XBT_INLINE void *xbt_malloc0(unsigned int n) {
 /** @brief like malloc, but xbt_die() on error and memset data to 0
     @hideinitializer */
 static XBT_INLINE void *xbt_malloc0(unsigned int n) {
-  void *res=calloc(n,1);
+  void *res;
+  if (n==0) xbt_die("calloc(0) is not portable");
+  res=calloc(n,1);
   if (!res)
      xbt_die(bprintf("Memory callocation of %d bytes failed",n));
   return res;
   if (!res)
      xbt_die(bprintf("Memory callocation of %d bytes failed",n));
   return res;
@@ -78,6 +82,7 @@ static XBT_INLINE void *xbt_malloc0(unsigned int n) {
     @hideinitializer */
 static XBT_INLINE void *xbt_realloc(void*p,unsigned int s){
   void *res=res;
     @hideinitializer */
 static XBT_INLINE void *xbt_realloc(void*p,unsigned int s){
   void *res=res;
+  if (s==0) xbt_die("realloc(0) is not portable");
   if (s) {
     if (p) {
       res=realloc(p,s);
   if (s) {
     if (p) {
       res=realloc(p,s);