v1.1.0
👀 Features
- Type Assigner BodyInterceptor added to enable typing of Locals with currently an unknown type - affects Locals that are coming from Bytecodefrontend/StackLocals
- added a CacheStrategy for Views (enabling MutableViews) or reduced Memory consumption
- Callgraph: added implicit edges for static initializer (clinit) into the call graph generation. Implicit edges to clinit methods are added if a static field is accessed, a constructor is called, a static method is called, or for each entry method of the call graph algorithm. #459
- Callgraph: The concrete implemented method is searched for a dispatch and added to the call graph. If a superclass implements the method then it will create an edge to the method of the superclass instead of the class which does not contain the implemented method. #499
- Callgraph: Default methods of Interfaces are considered as concrete dispatch if no superclass implements the method. #499
🔀 Refactorings/API Changes
- integrate TypeHierarchy into the CallGraph Algorithms so the user does not have to give the view and the typehierarchy which is stored in the view & adapt documentation
- CreateOnDemandView and CreateFullView on Project are replaced by createView
- nodes() is renamed to getNodes() in Stmtgraph
👷 Fixes
- no FatJar release anymore
- Jimple Parser can handle more than ASCII files
- reuse (Java)Local originating from Bytecodefrontend
- fix null entries in Body.getLocals() originating from Bytecodefrontend
- The memory needed to perform the RTA call graph algorithm is cleared after the algorithm.
- The RTA algorithm searches for "new" statements instead of constructor calls, so super class constructor calls are not considered as instantiated #497
- Removed dispatches to covariant methods, since the compiler builds bridge methods which call the covariant method. Bridge methods are generated on the sourcecode and bytecode frontend #497
🛠️ Dependency Updates
- Upgrade to ASM 9.5 #603
- Upgrade to Slf4j 2.0.5
- Upgrade to Slf4j simple 2.0.5
- Upgrade to Guava 31.1-jre
- Upgrade to Apache commons 3.12
- Upgrade to Apache commons io 2.11
- Upgrade to Wala 1.5.9 (last version supported for Java 8)
- All Wala transitive dependencies are fixed to a state that support Java 8
❤️ Contributors
Thank you to all contributors of this release 👍
@kadirayk @stschott @swissiety @wangzun66 @JonasKlauke @ericbodden @niorgai @ceclin