X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fsafe-alloc.h;h=7d7e9aa5a991ccb5ecaeb13b260b713ac176c590;hb=55898ee1c7c12e63772c65e772577f10bb7adb31;hp=1b7847add53cb2b70d486736e789922e5d358d0e;hpb=032310a69161066be953842f2dc69efae2f745a1;p=gnulib.git diff --git a/lib/safe-alloc.h b/lib/safe-alloc.h index 1b7847add..7d7e9aa5a 100644 --- a/lib/safe-alloc.h +++ b/lib/safe-alloc.h @@ -1,23 +1,19 @@ -/* - * memory.c: safer memory allocation - * - * Copyright (C) 2009 Free Software Foundation, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ +/* safe-alloc.h: safer memory allocation + + Copyright (C) 2009, 2010 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 3 of the License, or any + later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ /* Written by Daniel Berrange , 2008 */ @@ -26,6 +22,15 @@ # include +#ifndef __GNUC_PREREQ +# if defined __GNUC__ && defined __GNUC_MINOR__ +# define __GNUC_PREREQ(maj, min) \ + ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) +# else +# define __GNUC_PREREQ(maj, min) 0 +# endif +#endif + # ifndef ATTRIBUTE_RETURN_CHECK # if __GNUC_PREREQ (3, 4) # define ATTRIBUTE_RETURN_CHECK __attribute__((__warn_unused_result__)) @@ -54,7 +59,7 @@ safe_alloc_realloc_n (void *ptrptr, size_t size, size_t count) * Return -1 on failure to allocate, zero on success */ # define ALLOC(ptr) \ - safe_alloc_alloc_n (&(ptr), sizeof(*(ptr)), 1, 1) + safe_alloc_alloc_n (&(ptr), sizeof (*(ptr)), 1, 1) /** * ALLOC_N: @@ -68,7 +73,7 @@ safe_alloc_realloc_n (void *ptrptr, size_t size, size_t count) * Return -1 on failure, 0 on success */ # define ALLOC_N(ptr, count) \ - safe_alloc_alloc_n (&(ptr), sizeof(*(ptr)), (count), 1) + safe_alloc_alloc_n (&(ptr), sizeof (*(ptr)), (count), 1) /** * ALLOC_N_UNINITIALIZED: @@ -82,7 +87,7 @@ safe_alloc_realloc_n (void *ptrptr, size_t size, size_t count) * Return -1 on failure to allocate, zero on success */ # define ALLOC_N_UNINITIALIZED(ptr, count) \ - safe_alloc_alloc_n (&(ptr), sizeof(*(ptr)), (count), 0) + safe_alloc_alloc_n (&(ptr), sizeof (*(ptr)), (count), 0) /** * REALLOC_N: @@ -96,7 +101,7 @@ safe_alloc_realloc_n (void *ptrptr, size_t size, size_t count) * Return -1 on failure to reallocate, zero on success */ # define REALLOC_N(ptr, count) \ - safe_alloc_realloc_n (&(ptr), sizeof(*(ptr)), (count)) + safe_alloc_realloc_n (&(ptr), sizeof (*(ptr)), (count)) /** * FREE: @@ -108,9 +113,9 @@ safe_alloc_realloc_n (void *ptrptr, size_t size, size_t count) # define FREE(ptr) \ do \ { \ - free(ptr); \ + free (ptr); \ (ptr) = NULL; \ } \ - while(0) + while (0) #endif /* SAFE_ALLOC_H_ */