static void add_string ( XArray* /* of HChar* */xa, HChar* str )
{
- VG_(addToXA)( xa, (void*)(&str) );
+ (void) VG_(addToXA)( xa, (void*)(&str) );
}
return ((char*)xa->arr) + n * xa->elemSzB;
}
-void VG_(addToXA) ( XArray* xao, void* elem )
+Int VG_(addToXA) ( XArray* xao, void* elem )
{
struct _XArray* xa = (struct _XArray*)xao;
vg_assert(xa);
elem, xa->elemSzB );
xa->usedsizeE++;
xa->sorted = False;
+ return xa->usedsizeE-1;
}
// Generic shell sort. Like stdlib.h's qsort().
before making further queries with lookupXA. */
extern void VG_(setCmpFnXA) ( XArray*, Word (*compar)(void*,void*) );
-/* Add an element to an XArray. Element is copied into the XArray. */
-extern void VG_(addToXA) ( XArray*, void* elem );
+/* Add an element to an XArray. Element is copied into the XArray.
+ Index at which it was added is returned. Note this will be
+ invalidated if the array is later sortXA'd. */
+extern Int VG_(addToXA) ( XArray*, void* elem );
/* Sort an XArray using its comparison function, if set; else bomb.
Probably not a stable sort w.r.t. equal elements module cmpFn. */