граф циклов в джсоне
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user