xa->usedsizeE -= n;
}
+void VG_(getContentsXA_UNSAFE)( XArray* xao,
+ /*OUT*/void** ctsP,
+ /*OUT*/Word* usedP )
+{
+ struct _XArray* xa = (struct _XArray*)xao;
+ vg_assert(xa);
+ *ctsP = (void*)xa->arr;
+ *usedP = xa->usedsizeE;
+}
+
/* --------- Printeffery --------- */
static void add_char_to_XA ( HChar c, void* opaque )
is NULL, in which case the parent's cost-center is used. */
extern XArray* VG_(cloneXA)( HChar* cc, XArray* xa );
+/* Get the raw array and size so callers can index it really fast.
+ This is dangerous in the sense that there's no range or
+ anything-else checking. It's also dangerous in that if
+ VG_(addToXA) is used, the contents may be re-located without
+ warning, hence making the contents address returned here
+ invalid. */
+extern void VG_(getContentsXA_UNSAFE)( XArray* sr,
+ /*OUT*/void** ctsP,
+ /*OUT*/Word* usedP );
+
/* Convenience function: printf into an XArray of HChar, adding stuff
at the end. This is very convenient for concocting arbitrary
length printf output in an XArray. Note that the resulting string