diff --git a/src/utils/BinTree/BinTree.cpp b/src/utils/BinTree/BinTree.cpp index 12da7a1e0427f3f92e11934145a81e7cddedcd61..d01749faddca397ae8b3032b75c19164442fc44a 100644 --- a/src/utils/BinTree/BinTree.cpp +++ b/src/utils/BinTree/BinTree.cpp @@ -85,7 +85,8 @@ bool BinTree::loadDB() Record *record = NULL; while (!_dbFileMgr->eof()) { record = _dbFileMgr->allocateAndGetNextRecord(); - if (record == NULL) { + //In addition to NULL records, we also don't want to add unmapped reads. + if (record == NULL || record->isUnmapped()) { continue; } @@ -111,7 +112,9 @@ void BinTree::getHits(Record *record, RecordKeyList &hitSet) if (_showBinMetrics) { return; //don't care about query entries just yet. } - + if (record->isUnmapped()) { + return; + } const QuickString &chr = record->getChrName(); mainMapType::iterator mainIter = _mainMap.find(chr); if (mainIter == _mainMap.end()) { @@ -169,7 +172,7 @@ void BinTree::getHits(Record *record, RecordKeyList &hitSet) bool BinTree::addRecordToTree(const Record *record) { - //TBD. get chr, bin. allocate all bins and single bins as needed. + // Get chr, bin. allocate all bins and single bins as needed. const QuickString &chr = record->getChrName(); uint32_t startPos = (uint32_t)(record->getStartPos()); uint32_t endPos = (uint32_t)(record->getEndPos());