rmpi != mapping . reads . end( ); rmpi ++ )
rmpi != mapping . reads . end( ); ++ rmpi )
void FindConflicts (Mapping_t & mapping){  ReadAlign_t * curraln;  ReadMap_t * currmap;  pair<long int, long int> gap;  vector<ReadMap_t *>::iterator rmpi;  //-- For each read  for ( rmpi  = mapping . reads . begin( );	rmpi != mapping . reads . end( ); rmpi ++ )    {      if ( (*rmpi) -> place == NULL )	continue;      currmap = *rmpi;      curraln = currmap -> place -> head;      //-- If there is a HIBREAK      if ( currmap -> place -> end - currmap -> place -> tend > OPT_MaxTrimLen )	curraln -> ref -> conflicts . push_back	  (new Conflict_t (Conflict_t::HIBREAK, curraln -> hiR, 0, 0, currmap));            for ( ; curraln -> from != NULL; curraln = curraln -> from )	{	  gap = GapDistance (curraln -> from, curraln);	  //-- If there is an INDEL, push it and it's break points	  if ( labs (gap . first) > FUZZY  ||  labs (gap . second) > FUZZY )	    {	      curraln -> ref -> conflicts . push_back		(new Conflict_t (Conflict_t::INDEL,				 curraln -> from -> hiR,				 gap . first, gap . second, currmap));	      curraln -> ref -> conflicts . push_back		(new Conflict_t (Conflict_t::HIBREAK,				 curraln -> from -> hiR,				 0, 0, currmap));	      curraln -> ref -> conflicts . push_back		(new Conflict_t (Conflict_t::LOBREAK,				 curraln -> from -> hiR + gap . first + 1,				 0, 0, currmap));	    }	}      //-- If there is a LOBREAK      if ( currmap -> place -> tbeg - currmap -> place -> beg > OPT_MaxTrimLen )	curraln -> ref -> conflicts . push_back	  (new Conflict_t (Conflict_t::LOBREAK, curraln -> loR, 0, 0, currmap));    }  //-- For each reference, sort and remove redundant conflicts  map<string, Reference_t>::iterator rmi;  list<Conflict_t *>::iterator first, last, next, nxtf;  for ( rmi  = mapping . references . begin( );	rmi != mapping . references . end( ); rmi ++ )    {      if ( rmi -> second . conflicts . empty( ) )	continue;      rmi -> second . conflicts . sort (ConflictCmp_t( ));      //-- Do my own 'unique' method instead of STL, needed for fuzzy equals      first = next = rmi -> second . conflicts . begin( );      last  = nxtf = rmi -> second . conflicts . end( );      while ( ++ next != last )	{	  if ( IsEqualConflict (*first, *next) )	    {	      while ( !(*next) -> support . empty( ) )		{		  (*first) -> support . push_back ((*next)->support.back( ));		  (*next) -> support . pop_back( );		}	      delete (*next);	      rmi -> second . conflicts . erase (next);	      next = first;	    }	  else	    {	      if ( labs ((*first) -> pos - (*next) -> pos) <= FUZZY )		{		  if ( nxtf == last )		    nxtf = next;		}	      else		{		  if ( nxtf != last )		    {		      next = nxtf;		      nxtf = last;		    }		  first = next;		}	    }	}    }}