4242import java .util .Arrays ;
4343import java .util .Collection ;
4444import java .util .Deque ;
45- import java .util .HashMap ;
4645import java .util .HashSet ;
4746import java .util .Iterator ;
4847import java .util .LinkedHashMap ;
4948import java .util .List ;
5049import java .util .Map ;
51- import java .util .Objects ;
5250import java .util .Set ;
53- import java .util .concurrent .atomic .AtomicInteger ;
5451import java .util .function .Consumer ;
5552import java .util .regex .Matcher ;
5653import java .util .regex .Pattern ;
@@ -404,22 +401,22 @@ private static void printMethodNodes(Collection<MethodNode> methods, PrintWriter
404401 private static void printInvokeNodes (Map <AnalysisMethod , MethodNode > methodToNode , PrintWriter writer ) {
405402 writer .println (convertToCSV ("Id" , "MethodId" , "BytecodeIndexes" , "TargetId" , "IsDirect" ));
406403 methodToNode .values ().stream ()
407- .flatMap (node -> node .invokes .stream ()
408- .filter (invoke -> !invoke .callees .isEmpty ())
409- .map (invoke -> invokeNodeInfo (methodToNode , node , invoke )))
410- .map (CallTreePrinter ::convertToCSV )
411- .forEach (writer ::println );
404+ .flatMap (node -> node .invokes .stream ()
405+ .filter (invoke -> !invoke .callees .isEmpty ())
406+ .map (invoke -> invokeNodeInfo (methodToNode , node , invoke )))
407+ .map (CallTreePrinter ::convertToCSV )
408+ .forEach (writer ::println );
412409 }
413410
414411 private static void printCallTargets (Map <AnalysisMethod , MethodNode > methodToNode , PrintWriter writer ) {
415412 writer .println (convertToCSV ("InvokeId" , "TargetId" ));
416413 methodToNode .values ().stream ()
417- .flatMap (node -> node .invokes .stream ()
418- .filter (invoke -> !invoke .callees .isEmpty ())
419- .flatMap (invoke -> invoke .callees .stream ()
420- .map (callee -> callTargetInfo (invoke , callee ))))
421- .map (CallTreePrinter ::convertToCSV )
422- .forEach (writer ::println );
414+ .flatMap (node -> node .invokes .stream ()
415+ .filter (invoke -> !invoke .callees .isEmpty ())
416+ .flatMap (invoke -> invoke .callees .stream ()
417+ .map (callee -> callTargetInfo (invoke , callee ))))
418+ .map (CallTreePrinter ::convertToCSV )
419+ .forEach (writer ::println );
423420 }
424421
425422 private static List <String > methodNodeInfo (MethodNode method ) {
@@ -428,11 +425,11 @@ private static List<String> methodNodeInfo(MethodNode method) {
428425
429426 private static List <String > invokeNodeInfo (Map <AnalysisMethod , MethodNode > methodToNode , MethodNode method , InvokeNode invoke ) {
430427 return Arrays .asList (
431- String .valueOf (invoke .id ),
432- String .valueOf (method .id ),
433- showBytecodeIndexes (bytecodeIndexes (invoke )),
434- String .valueOf (methodToNode .get (invoke .targetMethod ).id ),
435- String .valueOf (invoke .isDirectInvoke ));
428+ String .valueOf (invoke .id ),
429+ String .valueOf (method .id ),
430+ showBytecodeIndexes (bytecodeIndexes (invoke )),
431+ String .valueOf (methodToNode .get (invoke .targetMethod ).id ),
432+ String .valueOf (invoke .isDirectInvoke ));
436433 }
437434
438435 private static List <String > callTargetInfo (InvokeNode invoke , Node callee ) {
0 commit comments