Skip to content

Commit f5134e3

Browse files
committed
Java: Eliminate pointless use of PathNodes over DataFlow::Node
The use of PathNode prevents these from being overlay informed.
1 parent 7670a2b commit f5134e3

File tree

1 file changed

+16
-24
lines changed
  • java/ql/lib/experimental/quantum

1 file changed

+16
-24
lines changed

java/ql/lib/experimental/quantum/JCA.qll

Lines changed: 16 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -556,40 +556,32 @@ module JCAModel {
556556

557557
module GetInstanceToInitToUseFlow = DataFlow::GlobalWithState<GetInstanceToInitToUseConfig>;
558558

559-
GetInstance getInstantiationFromUse(
560-
Use use, GetInstanceToInitToUseFlow::PathNode src, GetInstanceToInitToUseFlow::PathNode sink
561-
) {
562-
src.getNode().asExpr() = result and
563-
sink.getNode().asExpr() = use.(MethodCall).getQualifier() and
564-
GetInstanceToInitToUseFlow::flowPath(src, sink)
559+
GetInstance getInstantiationFromUse(Use use, DataFlow::Node src, DataFlow::Node sink) {
560+
src.asExpr() = result and
561+
sink.asExpr() = use.(MethodCall).getQualifier() and
562+
GetInstanceToInitToUseFlow::flow(src, sink)
565563
}
566564

567-
GetInstance getInstantiationFromInit(
568-
Init init, GetInstanceToInitToUseFlow::PathNode src, GetInstanceToInitToUseFlow::PathNode sink
569-
) {
570-
src.getNode().asExpr() = result and
571-
sink.getNode().asExpr() = init.(MethodCall).getQualifier() and
572-
GetInstanceToInitToUseFlow::flowPath(src, sink)
565+
GetInstance getInstantiationFromInit(Init init, DataFlow::Node src, DataFlow::Node sink) {
566+
src.asExpr() = result and
567+
sink.asExpr() = init.(MethodCall).getQualifier() and
568+
GetInstanceToInitToUseFlow::flow(src, sink)
573569
}
574570

575-
Init getInitFromUse(
576-
Use use, GetInstanceToInitToUseFlow::PathNode src, GetInstanceToInitToUseFlow::PathNode sink
577-
) {
578-
src.getNode().asExpr() = result.(MethodCall).getQualifier() and
579-
sink.getNode().asExpr() = use.(MethodCall).getQualifier() and
580-
GetInstanceToInitToUseFlow::flowPath(src, sink)
571+
Init getInitFromUse(Use use, DataFlow::Node src, DataFlow::Node sink) {
572+
src.asExpr() = result.(MethodCall).getQualifier() and
573+
sink.asExpr() = use.(MethodCall).getQualifier() and
574+
GetInstanceToInitToUseFlow::flow(src, sink)
581575
}
582576

583577
predicate hasInit(Use use) { exists(getInitFromUse(use, _, _)) }
584578

585-
Use getAnIntermediateUseFromFinalUse(
586-
Use final, GetInstanceToInitToUseFlow::PathNode src, GetInstanceToInitToUseFlow::PathNode sink
587-
) {
579+
Use getAnIntermediateUseFromFinalUse(Use final, DataFlow::Node src, DataFlow::Node sink) {
588580
not final.isIntermediate() and
589581
result.isIntermediate() and
590-
src.getNode().asExpr() = result.(MethodCall).getQualifier() and
591-
sink.getNode().asExpr() = final.(MethodCall).getQualifier() and
592-
GetInstanceToInitToUseFlow::flowPath(src, sink)
582+
src.asExpr() = result.(MethodCall).getQualifier() and
583+
sink.asExpr() = final.(MethodCall).getQualifier() and
584+
GetInstanceToInitToUseFlow::flow(src, sink)
593585
}
594586
}
595587

0 commit comments

Comments
 (0)