Closed shenjunjiekoda closed 2 months ago
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 70.04%. Comparing base (
5af272d
) to head (0ff4b1c
). Report is 18 commits behind head on develop.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Problem
In the current implementation of
getMethodSignatureInSubClass
withinICFGDotExporter.java
, there's a logical oversight where the method could potentially include the target method in its own set of sub-class method signatures. This leads to the incorrect behavior inconnectEdgesToSubClasses
, where a method might connect an edge from its starting statement back to itself, causing confusion in the call graph visualization.Before applying the PR change: source in
connectEdgesToSubClasses
:Here result
methodSignatureInSubClass
will containstarget
sink in
connectEdgesToSubClasses
:which will also overwrite previous entry set where call the
connectEdgesToSubClasses
incomputeCalls
Solution
This PR addresses the issue by adding an additional check in the
filter
operation withingetMethodSignatureInSubClass
. The updated logic ensures that the target method signature is explicitly excluded from the set of callable sub-class signatures.Changes Made
target
from the results if it matches thesource
.Thank you for considering this fix to improve the accuracy of our tool.