]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
(X2NREALLOC, X2REALLOC): Moved here from
authorPaul Eggert <eggert@cs.ucla.edu>
Thu, 22 Sep 2005 06:33:40 +0000 (06:33 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Thu, 22 Sep 2005 06:33:40 +0000 (06:33 +0000)
../lib/xalloc.h, with args properly parenthesized, and using
verify_expr rather than the old VERIFY_EXPR.

src/system.h

index b9aeec0aaa4ff7e2445fbaaea6537d8f357426c1..e18d99d86fcba65e1166c781b0246f439fb35681 100644 (file)
@@ -513,6 +513,20 @@ uid_t getuid ();
 #endif
 
 #include "xalloc.h"
+#include "verify.h"
+
+/* This is simply a shorthand for the common case in which
+   the third argument to x2nrealloc would be `sizeof *(P)'.
+   Ensure that sizeof *(P) is *not* 1.  In that case, it'd be
+   better to use X2REALLOC, although not strictly necessary.  */
+#define X2NREALLOC(P, PN) (verify_expr (sizeof *(P) != 1), \
+                          x2nrealloc (P, PN, sizeof *(P)))
+
+/* Using x2realloc (when appropriate) usually makes your code more
+   readable than using x2nrealloc, but it also makes it so your
+   code will malfunction if sizeof *(P) ever becomes 2 or greater.
+   So use this macro instead of using x2realloc directly.  */
+#define X2REALLOC(P, PN) (verify_expr (sizeof *(P) == 1), x2realloc (P, PN))
 
 #if ! defined HAVE_MEMPCPY && ! defined mempcpy
 /* Be CAREFUL that there are no side effects in N.  */
@@ -585,7 +599,6 @@ enum
   _("      --version  output version information and exit\n")
 
 #include "closeout.h"
-#include "verify.h"
 #include "version-etc.h"
 
 #define case_GETOPT_VERSION_CHAR(Program_name, Authors)                        \