Skip to content

Commit d46b0af

Browse files
committed
Improve runtime by adding seqLen to duplicateLines instead of incrementing it by one seqLen times
1 parent 409da26 commit d46b0af

File tree

1 file changed

+37
-42
lines changed

1 file changed

+37
-42
lines changed

src/Duplo.cpp

Lines changed: 37 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -159,15 +159,14 @@ namespace {
159159
return std::tuple(std::move(sourceFiles), matrix, files, locsTotal);
160160
}
161161

162-
unsigned ReportSeq(
162+
void ReportSeq(
163163
int line1,
164164
int line2,
165165
int count,
166166
bool xml,
167167
const SourceFile& source1,
168168
const SourceFile& source2,
169169
std::ostream& out) {
170-
unsigned duplicateLines = 0;
171170
if (xml) {
172171
out
173172
<< " <set LineCount=\"" << count << "\">"
@@ -206,7 +205,6 @@ namespace {
206205
StringUtil::StrSub(tmpstr, "&gt;", ">", -1);
207206

208207
out << " <line Text=\"" << tmpstr << "\"/>" << std::endl;
209-
duplicateLines++;
210208
}
211209

212210
out << " </lines>" << std::endl;
@@ -222,13 +220,10 @@ namespace {
222220
<< std::endl;
223221
for (int j = 0; j < count; j++) {
224222
out << source1.GetLine(j + line1).GetLine() << std::endl;
225-
duplicateLines++;
226223
}
227224

228225
out << std::endl;
229226
}
230-
231-
return duplicateLines;
232227
}
233228

234229
ProcessResult Process(
@@ -277,15 +272,15 @@ namespace {
277272
int line1 = y + x - seqLen;
278273
int line2 = x - seqLen;
279274
if (line1 != line2 || source1 != source2) {
280-
duplicateLines +=
281-
ReportSeq(
282-
line1,
283-
line2,
284-
seqLen,
285-
options.GetOutputXml(),
286-
source1,
287-
source2,
288-
outFile);
275+
ReportSeq(
276+
line1,
277+
line2,
278+
seqLen,
279+
options.GetOutputXml(),
280+
source1,
281+
source2,
282+
outFile);
283+
duplicateLines += seqLen;
289284
blocks++;
290285
}
291286
}
@@ -298,15 +293,15 @@ namespace {
298293
int line1 = m - seqLen;
299294
int line2 = n - seqLen;
300295
if (line1 != line2 || source1 != source2) {
301-
duplicateLines +=
302-
ReportSeq(
303-
line1,
304-
line2,
305-
seqLen,
306-
options.GetOutputXml(),
307-
source1,
308-
source2,
309-
outFile);
296+
ReportSeq(
297+
line1,
298+
line2,
299+
seqLen,
300+
options.GetOutputXml(),
301+
source1,
302+
source2,
303+
outFile);
304+
duplicateLines += seqLen;
310305
blocks++;
311306
}
312307
}
@@ -322,31 +317,31 @@ namespace {
322317
seqLen++;
323318
} else {
324319
if (seqLen >= lMinBlockSize) {
325-
duplicateLines +=
326-
ReportSeq(
327-
y - seqLen,
328-
x + y - seqLen,
329-
seqLen,
330-
options.GetOutputXml(),
331-
source1,
332-
source2,
333-
outFile);
320+
ReportSeq(
321+
y - seqLen,
322+
x + y - seqLen,
323+
seqLen,
324+
options.GetOutputXml(),
325+
source1,
326+
source2,
327+
outFile);
328+
duplicateLines += seqLen;
334329
blocks++;
335330
}
336331
seqLen = 0;
337332
}
338333
}
339334

340335
if (seqLen >= lMinBlockSize) {
341-
duplicateLines +=
342-
ReportSeq(
343-
m - seqLen,
344-
n - seqLen,
345-
seqLen,
346-
options.GetOutputXml(),
347-
source1,
348-
source2,
349-
outFile);
336+
ReportSeq(
337+
m - seqLen,
338+
n - seqLen,
339+
seqLen,
340+
options.GetOutputXml(),
341+
source1,
342+
source2,
343+
outFile);
344+
duplicateLines += seqLen;
350345
blocks++;
351346
}
352347
}

0 commit comments

Comments
 (0)