- // while data available
- BamAlignment al;
- while ( inputReader.GetNextAlignmentCore(al)) {
-
- // store alignments in buffer
- buffer.push_back(al);
-
- // if buffer is full, handle contents (sort & write to temp file)
- if ( buffer.size() == m_settings->MaxBufferCount )
- HandleBufferContents(buffer);
+ // if sorting by name, we need to generate full char data
+ // so can't use GetNextAlignmentCore()
+ if ( m_settings->IsSortingByName ) {
+
+ // iterate through file
+ while ( inputReader.GetNextAlignment(al)) {
+
+ // store alignments in buffer
+ buffer.push_back(al);
+
+ // if buffer is full, handle contents (sort & write to temp file)
+ if ( buffer.size() == m_settings->MaxBufferCount )
+ HandleBufferContents(buffer);
+ }
+