+
+/* --- @a_realloc, @A_REALLOC@, @a_reallocv@, @A_REALLOCV@ --- *
+ *
+ * Arguments: @arena *a@ = pointer to arena
+ * @void *p@ = pointer to existing block
+ * @size_t n@ = new number of elements (for @a_reallocv@,
+ * @A_REALLOCV@)
+ * @size_t on@ = old number of elements (for @a_reallocv@,
+ * @A_REALLOCV@)
+ * @size_t sz@ = size of elements (for @a_reallocv@,
+ * @A_REALLOCV@) or new block size (@a_realloc@,
+ * @A_REALLOC@)
+ * @size_t osz@ = old block size (@a_realloc@, @A_REALLOC@)
+ *
+ * Returns: Pointer to the new block, or null on failure.
+ *
+ * Use: The @a_reallocv@ function and @A_REALLOCV@ macro adjust a
+ * block which currently has space for @on@ elements each of
+ * size @sz@, so that it now has enough space for @n@ elements,
+ * preserving the initial @min(n, on)@ elements. The
+ * @a_realloc@ function and @A_REALLOC@ macro are the same, but
+ * with @sz@ fixed equal to 1, and @n@ and @on@ renamed to @sz@
+ * and @osz@ for historical reasons.
+ */
+
+extern void *a_realloc(arena */*a*/, void */*p*/,
+ size_t /*sz*/, size_t /*osz*/);
+extern void *a_reallocv(arena */*a*/, void */*p*/,
+ size_t /*n*/, size_t /*on*/, size_t /*sz*/);
+