граф циклов в джсоне

This commit is contained in:
2025-03-31 22:12:04 +03:00
parent 76c710b1bc
commit c6d2452530
4 changed files with 20 additions and 15 deletions

1
.idea/workspace.xml generated
View File

@@ -7,7 +7,6 @@
</component>
<component name="ChangeListManager">
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/SPF_GetGraphLoops.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/SPF_GetGraphLoops.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/Files/DBProjectFile.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/Files/DBProjectFile.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/SapforData/Loops/Loop.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ProjectData/SapforData/Loops/Loop.java" afterDir="false" />

View File

@@ -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<String> 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();
}
}

View File

@@ -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<Loop> 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();
}
}

View File

@@ -29,10 +29,6 @@ public class Loop extends FileObjectWithMessages {
}
}
//---
@Expose
public List<FuncCall> funcCalls = new Vector<>();
// @Expose
// public List<NonRectIter> non_rect_iters = new Vector<>();
@Expose
public List<Integer> extGotos = new Vector<>();
@Expose
@@ -41,6 +37,9 @@ public class Loop extends FileObjectWithMessages {
public List<Integer> ios = new Vector<>();
@Expose
public List<Integer> stops = new Vector<>();
//--
@Expose
public List<FuncCall> funcCalls = new Vector<>();
@Expose
public List<Loop> 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);
}
}