aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/PerLine.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/PerLine.cxx')
-rw-r--r--src/PerLine.cxx8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/PerLine.cxx b/src/PerLine.cxx
index 0bdb60254..a2225dbb6 100644
--- a/src/PerLine.cxx
+++ b/src/PerLine.cxx
@@ -99,7 +99,7 @@ void MarkerHandleSet::RemoveHandle(int handle) {
}
}
-bool MarkerHandleSet::RemoveNumber(int markerNum) {
+bool MarkerHandleSet::RemoveNumber(int markerNum, bool all) {
bool performedDeletion = false;
MarkerHandleNumber **pmhn = &root;
while (*pmhn) {
@@ -108,6 +108,8 @@ bool MarkerHandleSet::RemoveNumber(int markerNum) {
*pmhn = mhn->next;
delete mhn;
performedDeletion = true;
+ if (!all)
+ break;
} else {
pmhn = &((*pmhn)->next);
}
@@ -223,10 +225,10 @@ bool LineMarkers::DeleteMark(int line, int markerNum, bool all) {
delete markers[line];
markers[line] = NULL;
} else {
- bool performedDeletion = markers[line]->RemoveNumber(markerNum);
+ bool performedDeletion = markers[line]->RemoveNumber(markerNum, all);
someChanges = someChanges || performedDeletion;
while (all && performedDeletion) {
- performedDeletion = markers[line]->RemoveNumber(markerNum);
+ performedDeletion = markers[line]->RemoveNumber(markerNum, all);
someChanges = someChanges || performedDeletion;
}
if (markers[line]->Length() == 0) {