src/ccstruct/coutln.cpp
void C_OUTLINE::RemoveSmallRecursive(int min_size, C_OUTLINE_IT *it) {
  if (box.width() < min_size || box.height() < min_size) {
    ASSERT_HOST(this == it->data());
    delete it->extract(); // Too small so get rid of it and any children.
  } else if (!children.empty()) {
    // Search the children of this, deleting any that are too small.
    C_OUTLINE_IT child_it(&children);
    for (child_it.mark_cycle_pt(); !child_it.cycled_list(); child_it.forward()) {
      C_OUTLINE *child = child_it.data();
      child->RemoveSmallRecursive(min_size, &child_it);
    }
  }
}
/**
 * If this outline is smaller than the given min_size, delete this and
 * remove from its list, via *it, after checking that *it points to this.
 * Otherwise, if any children of this are too small, delete them.
 * On entry, *it must be an iterator pointing to this. If this gets deleted
 * then this is extracted from *it, so an iteration can continue.
 * @param min_size minimum size for outline
 * @param it outline iterator
 */
If this outline is smaller than the given min_size, delete this and
remove from its list, via *it, after checking that *it points to this.
Otherwise, if any children of this are too small, delete them.
On entry, *it must be an iterator pointing to this. If this gets deleted
then this is extracted from *it, so an iteration can continue.
@param min_size minimum size for outline
@param it outline iterator
If this outline is smaller than the given min_size delete this and remove from its list via * it after checking that * it points to this . Otherwise if any children of this are too small delete them . On entry * it must be an iterator pointing to this . If this gets deleted then this is extracted from * it so an iteration can continue . @param min_size minimum size for outline @param it outline iterator
void C_OUTLINE::RemoveSmallRecursive(int min_size, C_OUTLINE_IT *it) {
  if (box.width() < min_size || box.height() < min_size) {
    ASSERT_HOST(this == it->data());
    delete it->extract(); 
  } else if (!children.empty()) {
    C_OUTLINE_IT child_it(&children);
    for (child_it.mark_cycle_pt(); !child_it.cycled_list(); child_it.forward()) {
      C_OUTLINE *child = child_it.data();
      child->RemoveSmallRecursive(min_size, &child_it);
    }
  }
}
void C_OUTLINE :: RemoveSmallRecursive ( int min_size , C_OUTLINE_IT * it ) { if ( box . width ( ) < min_size || box . height ( ) < min_size ) { ASSERT_HOST ( this == it -> data ( ) ) ; delete it -> extract ( ) ; } else if ( ! children . empty ( ) ) { C_OUTLINE_IT child_it ( & children ) ; for ( child_it . mark_cycle_pt ( ) ; ! child_it . cycled_list ( ) ; child_it . forward ( ) ) { C_OUTLINE * child = child_it . data ( ) ; child -> RemoveSmallRecursive ( min_size , & child_it ) ; } } }
If this outline is smaller than the given min_size, delete this and
 remove from its list, via *it, after checking that *it points to this.
If this outline is smaller than the given min_size delete this and remove from its list via * it after checking that * it points to this .
// Too small so get rid of it and any children. // Search the children of this, deleting any that are too small.