diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 0ec3cea7..0552542f 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -9,6 +9,8 @@
+
+
diff --git a/src/_VisualDVM/Passes/All/SPF_GetGraphLoops.java b/src/_VisualDVM/Passes/All/SPF_GetGraphLoops.java
index e8566127..1a26ff01 100644
--- a/src/_VisualDVM/Passes/All/SPF_GetGraphLoops.java
+++ b/src/_VisualDVM/Passes/All/SPF_GetGraphLoops.java
@@ -6,7 +6,9 @@ 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;
import java.util.Vector;
public class SPF_GetGraphLoops extends SapforAnalysis {
@Override
@@ -41,16 +43,15 @@ public class SPF_GetGraphLoops extends SapforAnalysis {
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){
- for (Loop loop: fileLoopsJson.loops)
- loop.setFile(fileLoopsJson.file);
- //-
- DBProjectFile dbProjectFile = target.db.files.get(fileLoopsJson.file);
- dbProjectFile.saveAllLoops();
- dbProjectFile.LoopGraphTitle = "Всего циклов: " + dbProjectFile.AllLoops.size();
- //-
- target.numLoops += dbProjectFile.AllLoops.size();
+ DBProjectFile projectFile = target.db.files.get(fileLoopsJson.file);
+ projectFile.LoopNests.addAll(fileLoopsJson.loops);
+ projectFile.saveAllLoops();
+ projectFile.LoopGraphTitle = "Всего циклов: " + projectFile.AllLoops.size();
+ target.numLoops += projectFile.AllLoops.size();
}
}
@Override
diff --git a/src/_VisualDVM/ProjectData/Files/DBProjectFile.java b/src/_VisualDVM/ProjectData/Files/DBProjectFile.java
index 9115a6ea..b3a00669 100644
--- a/src/_VisualDVM/ProjectData/Files/DBProjectFile.java
+++ b/src/_VisualDVM/ProjectData/Files/DBProjectFile.java
@@ -258,7 +258,7 @@ public class DBProjectFile extends ProjectFile {
public DefaultMutableTreeNode show_loop_graph_r(FileObjectWithMessages element) {
DefaultMutableTreeNode res = new DefaultMutableTreeNode(element);
if (element instanceof Loop) {
- for (FileObjectWithMessages child : ((Loop) element).getAllChildren())
+ for (FileObjectWithMessages child : ((Loop) element).getGraphNodes(this))
res.add(show_loop_graph_r(child));
}
return res;
diff --git a/src/_VisualDVM/ProjectData/SapforData/Loops/Loop.java b/src/_VisualDVM/ProjectData/SapforData/Loops/Loop.java
index 316cf8dc..991d8bc1 100644
--- a/src/_VisualDVM/ProjectData/SapforData/Loops/Loop.java
+++ b/src/_VisualDVM/ProjectData/SapforData/Loops/Loop.java
@@ -1,7 +1,7 @@
package _VisualDVM.ProjectData.SapforData.Loops;
import Common.Visual.Fonts.VisualiserFonts;
+import _VisualDVM.ProjectData.Files.DBProjectFile;
import _VisualDVM.ProjectData.Messages.Message;
-import _VisualDVM.ProjectData.SapforData.FileObject;
import _VisualDVM.ProjectData.SapforData.FileObjectWithMessages;
import _VisualDVM.ProjectData.SapforData.Functions.FuncCall;
import com.google.gson.annotations.Expose;
@@ -34,24 +34,33 @@ public class Loop extends FileObjectWithMessages {
// @Expose
// public List non_rect_iters = new Vector<>();
@Expose
- public List extGotos = new Vector<>();
+ public List extGotos = new Vector<>();
@Expose
- public List intGotos = new Vector<>();
+ public List intGotos = new Vector<>();
@Expose
- public List ios = new Vector<>();
+ public List ios = new Vector<>();
@Expose
- public List stops = new Vector<>();
+ public List stops = new Vector<>();
@Expose
public List children = new Vector<>();
//--
- public List getAllChildren(){
+ public List getGraphNodes(DBProjectFile dbProjectFile){
List all_children = new Vector<>();
+ //-
+ if (hasNonRectangularBounds!=0)
+ all_children.add(new NonRectIter(dbProjectFile, line));
+ //-
all_children.addAll(funcCalls);
- // all_children.addAll(non_rect_iters);
- all_children.addAll(extGotos);
- all_children.addAll(intGotos);
- all_children.addAll(ios);
- all_children.addAll(stops);
+ //-
+ for (int line_: extGotos)
+ all_children.add(new EGoto(dbProjectFile, line_));
+ for (int line_: intGotos)
+ all_children.add(new IGoto(dbProjectFile, line_));
+ for (int line_: ios)
+ all_children.add(new IO(dbProjectFile, line_));
+ for (int line_: stops)
+ all_children.add(new Stop(dbProjectFile, line_));
+ //-
all_children.addAll(children);
return all_children;
}
@@ -80,10 +89,4 @@ 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 (FileObject fileObject: getAllChildren())
- fileObject.setFile(file_in);
- }
}