Skip to content

Commit bb4a54d

Browse files
committed
oops
1 parent 7291b8e commit bb4a54d

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

src/MummerSeeder.cpp

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,13 @@ std::vector<SeedHit> MummerSeeder::getMumSeeds(std::string sequence, size_t maxC
236236
return seeds;
237237
}
238238

239+
size_t matchLength(const std::string& left, const std::string& right, size_t leftstart, size_t rightstart)
240+
{
241+
size_t result = 0;
242+
while (leftstart+result < left.size() && rightstart+result < right.size() && left[leftstart+result] == right[rightstart+result]) result++;
243+
return result;
244+
}
245+
239246
std::vector<SeedHit> MummerSeeder::getMemSeeds(std::string sequence, size_t maxCount, size_t minLen) const
240247
{
241248
for (size_t i = 0; i < sequence.size(); i++)
@@ -246,7 +253,7 @@ std::vector<SeedHit> MummerSeeder::getMemSeeds(std::string sequence, size_t maxC
246253
std::priority_queue<MatchWithOrientation, std::vector<MatchWithOrientation>, std::greater<MatchWithOrientation>> matches;
247254
matcher->findMEM_each(sequence, minLen, false, [this, &sequence, &matches, maxCount, minLen](mummer::mummer::match_t match)
248255
{
249-
size_t realSize = strncmp((const char*)sequence.data() + match.query, (const char*)seq.data() + match.ref, match.len);
256+
size_t realSize = matchLength(sequence, seq, match.query, match.ref);
250257
if (realSize < match.len)
251258
{
252259
match.len = realSize;
@@ -266,7 +273,7 @@ std::vector<SeedHit> MummerSeeder::getMemSeeds(std::string sequence, size_t maxC
266273
revcompInPlace(sequence);
267274
matcher->findMEM_each(sequence, minLen, false, [this, &sequence, &matches, maxCount, minLen](mummer::mummer::match_t match)
268275
{
269-
size_t realSize = strncmp((const char*)sequence.data() + match.query, (const char*)seq.data() + match.ref, match.len);
276+
size_t realSize = matchLength(sequence, seq, match.query, match.ref);
270277
if (realSize < match.len)
271278
{
272279
match.len = realSize;

0 commit comments

Comments
 (0)