+extern void *x_reallocv(arena */*a*/, void */*p*/,
+ size_t /*n*/, size_t /*on*/, size_t /*sz*/);
+
+/* --- @X_RENEWV@ --- *
+ *
+ * Arguments: @type *p@ = a pointer to allocate
+ * @arena *a@ = pointer to underlying arena
+ * @size_t n, on@ = new and existing numbers of elements
+ *
+ * Returns: ---
+ *
+ * Use: Adjust @p@ to point to a new block of memory with space for
+ * @n@ elements of the type pointed to by @p@, on the assumption
+ * that @p@ is either null or currently points to a block with
+ * space for @on@ elements.
+ */
+
+#define X_RENEWV(p, a, n, on) \
+ do { (p) = x_reallocv((a), (p), (n), (on), sizeof(*(p))); } while (0)