+
+void pvector_iterate(pvector *pv,
+ int (*itemfn)(unsigned long,void*,void*),
+ void *data )
+{
+ unsigned long index = 0;
+ while ( index < pv->size ) {
+ void **slot = pvector_next_used( pv, &index, 0, 0 );
+ if ( slot == 0 ) {
+ break;
+ }
+ int i = index & 0xff;
+ for ( ; i < 256 && index < pv->size; i++, index++, slot++ ) {
+ if ( itemfn( index, *slot, data ) ) {
+ return;
+ }
+ }
+ }
+}