33   if (partner != 
nullptr) {
 
   36   if (latest_part_ == 
nullptr || partner == 
nullptr) {
 
   38     part_it_.move_to_last();
 
   39   } 
else if (latest_part_->SingletonPartner(
false) != part) {
 
   41     for (part_it_.move_to_first(); !part_it_.at_last() &&
 
   42          part_it_.data() != partner;
 
   45   part_it_.add_after_then_move(part);
 
   58                                             ColPartition_LIST* used_parts,
 
   60                                             TO_BLOCK_LIST* to_blocks) {
 
   61   MakeBlocks(bleft, tright, resolution, used_parts);
 
   62   BLOCK_IT block_it(blocks);
 
   63   block_it.move_to_last();
 
   64   block_it.add_list_after(&completed_blocks_);
 
   65   TO_BLOCK_IT to_block_it(to_blocks);
 
   66   to_block_it.move_to_last();
 
   67   to_block_it.add_list_after(&to_blocks_);
 
   73                                            TO_BLOCK_LIST* to_blocks) {
 
   74   BLOCK_IT block_it(&completed_blocks_);
 
   75   block_it.add_list_before(blocks);
 
   76   TO_BLOCK_IT to_block_it(&to_blocks_);
 
   77   to_block_it.add_list_before(to_blocks);
 
   83 void WorkingPartSet::MakeBlocks(
const ICOORD& bleft, 
const ICOORD& tright,
 
   84                                 int resolution, ColPartition_LIST* used_parts) {
 
   85   part_it_.move_to_first();
 
   86   while (!part_it_.empty()) {
 
   89     ColPartition_LIST block_parts;
 
   90     ColPartition_IT block_it(&block_parts);
 
   92     bool text_block = 
false;
 
  100       block_it.add_after_then_move(part);
 
  102       if (part_it_.empty() || next_part != part_it_.data()) {
 
  108       if (next_part == 
nullptr && !part_it_.empty()) {
 
  109         ColPartition* next_block_part = part_it_.data();
 
  111         const TBOX& next_box = next_block_part->bounding_box();
 
  117             !part->
IsLineType() && !next_block_part->IsLineType() &&
 
  119             (text_block || part_box.
bottom() <= next_box.
top()))
 
  120           next_part = next_block_part;
 
  122     } 
while (!part_it_.empty() && next_part != 
nullptr);
 
  125                                                    &block_parts, used_parts);
 
  126       if (to_block != 
nullptr) {
 
  127         TO_BLOCK_IT to_block_it(&to_blocks_);
 
  128         to_block_it.add_to_end(to_block);
 
  129         BLOCK_IT block_it(&completed_blocks_);
 
  130         block_it.add_to_end(to_block->
block);
 
  136                                       &completed_blocks_, &to_blocks_);
 
  139   part_it_.set_to_list(&part_set_);
 
  140   latest_part_ = 
nullptr;
 
  141   ASSERT_HOST(completed_blocks_.length() == to_blocks_.length());