diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 0552542f..7d36a72c 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -7,7 +7,6 @@ - diff --git a/src/_VisualDVM/Passes/All/SPF_GetGraphLoops.java b/src/_VisualDVM/Passes/All/SPF_GetGraphLoops.java index 1a26ff01..ee81f73e 100644 --- a/src/_VisualDVM/Passes/All/SPF_GetGraphLoops.java +++ b/src/_VisualDVM/Passes/All/SPF_GetGraphLoops.java @@ -5,7 +5,6 @@ import _VisualDVM.Passes.Sapfor.SapforAnalysis; import _VisualDVM.ProjectData.Files.DBProjectFile; import _VisualDVM.ProjectData.SapforData.Loops.Json.FileLoopsJson; import _VisualDVM.ProjectData.SapforData.Loops.Json.LoopsJson; -import _VisualDVM.ProjectData.SapforData.Loops.Loop; import org.apache.commons.io.FileUtils; import java.io.File; @@ -40,17 +39,10 @@ public class SPF_GetGraphLoops extends SapforAnalysis { } @Override protected void unpack(String packed) throws Exception { - int allLoops=0; - Vector loops_programs = new Vector<>(); - System.out.println(packed); - File debug = new File(Global.TempDirectory, "debug.txt"); - FileUtils.writeStringToFile(debug,packed); LoopsJson loopsJson = Utils_.gson.fromJson(packed, LoopsJson.class); for (FileLoopsJson fileLoopsJson: loopsJson.allLoops){ DBProjectFile projectFile = target.db.files.get(fileLoopsJson.file); - projectFile.LoopNests.addAll(fileLoopsJson.loops); - projectFile.saveAllLoops(); - projectFile.LoopGraphTitle = "Всего циклов: " + projectFile.AllLoops.size(); + projectFile.saveLoops(fileLoopsJson.loops); target.numLoops += projectFile.AllLoops.size(); } } diff --git a/src/_VisualDVM/ProjectData/Files/DBProjectFile.java b/src/_VisualDVM/ProjectData/Files/DBProjectFile.java index b3a00669..07609331 100644 --- a/src/_VisualDVM/ProjectData/Files/DBProjectFile.java +++ b/src/_VisualDVM/ProjectData/Files/DBProjectFile.java @@ -25,6 +25,7 @@ import java.io.IOException; import java.io.PrintStream; import java.nio.file.Paths; import java.util.LinkedHashMap; +import java.util.List; import java.util.Vector; //по файлам нет смысла делать совместимость. //так что переименую @@ -474,9 +475,15 @@ public class DBProjectFile extends ProjectFile { return res; } //--- - public void saveAllLoops(){ + public void saveLoops(List loopNests_in){ + AllLoops.clear(); + LoopNests.clear(); + //-- + LoopNests.addAll(loopNests_in); for (Loop loop: LoopNests){ + loop.setFile(this.name); loop.toMap_r(AllLoops); } + LoopGraphTitle = "Всего циклов: " +AllLoops.size(); } } \ No newline at end of file diff --git a/src/_VisualDVM/ProjectData/SapforData/Loops/Loop.java b/src/_VisualDVM/ProjectData/SapforData/Loops/Loop.java index 991d8bc1..68bd9c48 100644 --- a/src/_VisualDVM/ProjectData/SapforData/Loops/Loop.java +++ b/src/_VisualDVM/ProjectData/SapforData/Loops/Loop.java @@ -29,10 +29,6 @@ public class Loop extends FileObjectWithMessages { } } //--- - @Expose - public List funcCalls = new Vector<>(); - // @Expose - // public List non_rect_iters = new Vector<>(); @Expose public List extGotos = new Vector<>(); @Expose @@ -41,6 +37,9 @@ public class Loop extends FileObjectWithMessages { public List ios = new Vector<>(); @Expose public List stops = new Vector<>(); + //-- + @Expose + public List funcCalls = new Vector<>(); @Expose public List children = new Vector<>(); //-- @@ -89,4 +88,12 @@ public class Loop extends FileObjectWithMessages { for (Loop loop: children) loop.toMap_r(loops_map); } + @Override + public void setFile(String file_in) { + super.setFile(file_in); + for (FuncCall funcCall: funcCalls) + funcCall.setFile(file_in); + for (Loop child: children) + child.setFile(file_in); + } }