X-Git-Url: https://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fsafe-alloc.h;h=1e90582d902fb40e3fc557183535df8b37ea339c;hb=84d1749c4b5ad026522be96537320556ec6f7a57;hp=3fa3f2eed871d6d76fcdd8e7e69e271509d42733;hpb=bdec3e410196c242757abb0a130dd929e6375615;p=gnulib.git diff --git a/lib/safe-alloc.h b/lib/safe-alloc.h index 3fa3f2eed..1e90582d9 100644 --- a/lib/safe-alloc.h +++ b/lib/safe-alloc.h @@ -1,23 +1,19 @@ -/* - * safe-alloc.h: 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-2013 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,22 +22,31 @@ # include -# ifndef ATTRIBUTE_RETURN_CHECK +#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 _GL_ATTRIBUTE_RETURN_CHECK # if __GNUC_PREREQ (3, 4) -# define ATTRIBUTE_RETURN_CHECK __attribute__((__warn_unused_result__)) +# define _GL_ATTRIBUTE_RETURN_CHECK __attribute__((__warn_unused_result__)) # else -# define ATTRIBUTE_RETURN_CHECK +# define _GL_ATTRIBUTE_RETURN_CHECK # endif # endif /* Don't call these directly - use the macros below */ int safe_alloc_alloc_n (void *ptrptr, size_t size, size_t count, int zeroed) - ATTRIBUTE_RETURN_CHECK; + _GL_ATTRIBUTE_RETURN_CHECK; int safe_alloc_realloc_n (void *ptrptr, size_t size, size_t count) - ATTRIBUTE_RETURN_CHECK; + _GL_ATTRIBUTE_RETURN_CHECK; /** * ALLOC: @@ -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: @@ -111,6 +116,6 @@ safe_alloc_realloc_n (void *ptrptr, size_t size, size_t count) free (ptr); \ (ptr) = NULL; \ } \ - while(0) + while (0) #endif /* SAFE_ALLOC_H_ */