File tree Expand file tree Collapse file tree 3 files changed +20
-6
lines changed Expand file tree Collapse file tree 3 files changed +20
-6
lines changed Original file line number Diff line number Diff line change 23
23
24
24
struct CovTreeDecoder ::Private {
25
25
KeyEventDigger keDigger;
26
+ InStream &input;
26
27
const pt::ptree *pSrc;
27
28
29
+ Private (InStream &input_):
30
+ input (input_)
31
+ {
32
+ }
33
+
28
34
void readEvents (Defect *def);
29
35
};
30
36
31
- CovTreeDecoder::CovTreeDecoder ():
32
- d(new Private)
37
+ CovTreeDecoder::CovTreeDecoder (InStream &input ):
38
+ d(new Private(input) )
33
39
{
34
40
}
35
41
@@ -50,10 +56,18 @@ void CovTreeDecoder::Private::readEvents(Defect *def)
50
56
evt.event = valueOf<std::string>(evtNode, " eventTag" );
51
57
evt.msg = valueOf<std::string>(evtNode, " eventDescription" );
52
58
53
- if (evtNode.get <bool >(" main" ))
59
+ if (evtNode.get <bool >(" main" )) {
54
60
// this is a key event
55
- // TODO: detect and report re-definitions of key events
61
+
62
+ if (def->keyEventIdx )
63
+ // key event redefinition (TODO: more detailed diagnostic msg)
64
+ std::cerr << this ->input .fileName ()
65
+ << " : warning: key event redefinition detected"
66
+ << std::endl;
67
+
68
+ // record key event index
56
69
def->keyEventIdx = def->events .size ();
70
+ }
57
71
58
72
// push the event to the list of events
59
73
def->events .push_back (std::move (evt));
Original file line number Diff line number Diff line change 25
25
// / tree decoder of the Coverity JSON format
26
26
class CovTreeDecoder : public AbstractTreeDecoder {
27
27
public:
28
- CovTreeDecoder ();
28
+ CovTreeDecoder (InStream &input );
29
29
~CovTreeDecoder () override ;
30
30
bool readNode (Defect *def) override ;
31
31
Original file line number Diff line number Diff line change @@ -89,7 +89,7 @@ JsonParser::JsonParser(InStream &input):
89
89
d->decoder .reset (new SimpleTreeDecoder (d->input ));
90
90
else if (findChildOf (&node, d->root , " issues" ))
91
91
// Coverity JSON format
92
- d->decoder .reset (new CovTreeDecoder);
92
+ d->decoder .reset (new CovTreeDecoder (d-> input ) );
93
93
else if (findChildOf (&node, d->root , " runs" ))
94
94
// SARIF format
95
95
d->decoder .reset (new SarifTreeDecoder);
You can’t perform that action at this time.
0 commit comments