+
+ if (q == table->iter_tail) {
+ /* removing current element */
+ table->iter_tail = q->chain;
+ if (!table->iter_tail) {
+ /* go to next segment */
+ do {
+ if (!iter_step (table))
+ break;
+ } while (!table->dir[table->iter_i][table->iter_j]);
+ table->iter_tail = table->dir[table->iter_i][table->iter_j];
+ }
+ }
+