Skip to content

Commit 80c89a3

Browse files
committed
csgrep --warning-rate-limit: fix msg of the note event
The code used a string that was already overwritten for the error event. Closes: #121
1 parent 03dcd62 commit 80c89a3

File tree

3 files changed

+12
-11
lines changed

3 files changed

+12
-11
lines changed

src/lib/filter.cc

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -262,27 +262,28 @@ void RateLimitter::flush()
262262
{
263263
for (; !d->errors.empty(); d->errors.pop()) {
264264
Defect &def = d->errors.front();
265+
DefEvent &evtErr = def.events.back();
266+
267+
// make a copy now because evtErr.event will be overwritten
268+
DefEvent evtNote = evtErr;
265269

266270
// resolve the count of occurrences for this checker/event pair
267-
const DefEvent &keyEvt = def.events[def.keyEventIdx];
268-
const Private::TKey key(def.checker, keyEvt.event);
271+
const Private::TKey key(def.checker, evtErr.event);
269272
const Private::TCnt cnt = d->counter[key];
270273

271-
// construct an error event
274+
// construct an error event in-place
272275
std::ostringstream err, note;
273-
err << cnt << " occurrences of " << keyEvt.event
274-
<< " exceeded the specified limit "
276+
err << cnt << " occurrences of "
277+
<< evtErr.event << " exceeded the specified limit "
275278
<< d->rateLimit;
276279

277-
DefEvent &evtErr = def.events.back();
278280
evtErr.event = "error[too-many]";
279281
evtErr.msg = err.str();
280282

281283
// construct a note event
282284
note << (cnt - d->rateLimit) << " occurrences of "
283-
<< keyEvt.event << " were discarded because of this";
285+
<< evtNote.event << " were discarded because of this";
284286

285-
DefEvent evtNote = evtErr;
286287
evtNote.event = "note";
287288
evtNote.msg = note.str();
288289
evtNote.verbosityLevel = /* info */ 1;

tests/csgrep/0110-warning-rate-limit-stdout.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1892,7 +1892,7 @@
18921892
"line": 3,
18931893
"column": 8,
18941894
"event": "note",
1895-
"message": "99 occurrences of error[too-many] were discarded because of this",
1895+
"message": "99 occurrences of note[SC2086] were discarded because of this",
18961896
"verbosity_level": 1
18971897
}
18981898
]
@@ -1917,7 +1917,7 @@
19171917
"line": 128,
19181918
"column": 37,
19191919
"event": "note",
1920-
"message": "13 occurrences of error[too-many] were discarded because of this",
1920+
"message": "13 occurrences of warning[SC2207] were discarded because of this",
19211921
"verbosity_level": 1
19221922
}
19231923
]

tests/csgrep/sync.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
set -exo pipefail
33

44
# set path to project root
5-
PROJECT_ROOT="../../"
5+
PROJECT_ROOT="../.."
66

77
# import ${JSFILTER_CMD}
88
. ../test-lib.sh

0 commit comments

Comments
 (0)