diff --git a/Ghidra/Debug/Debugger-isf/src/main/java/ghidra/program/model/data/ISF/AbstractIsfWriter.java b/Ghidra/Debug/Debugger-isf/src/main/java/ghidra/program/model/data/ISF/AbstractIsfWriter.java
index 9afd82d11e..00286cd8a9 100644
--- a/Ghidra/Debug/Debugger-isf/src/main/java/ghidra/program/model/data/ISF/AbstractIsfWriter.java
+++ b/Ghidra/Debug/Debugger-isf/src/main/java/ghidra/program/model/data/ISF/AbstractIsfWriter.java
@@ -44,7 +44,7 @@ public abstract class AbstractIsfWriter implements Closeable {
protected JsonArray objects = new JsonArray();
public AbstractIsfWriter(Writer baseWriter) throws IOException {
- if (writer != null) {
+ if (baseWriter != null) {
this.writer = new JsonWriter(baseWriter);
writer.setIndent(" ");
}
diff --git a/Ghidra/Debug/Debugger-isf/src/main/java/ghidra/program/model/data/ISF/IsfDataTypeWriter.java b/Ghidra/Debug/Debugger-isf/src/main/java/ghidra/program/model/data/ISF/IsfDataTypeWriter.java
index e12ebf42a1..195b64b519 100644
--- a/Ghidra/Debug/Debugger-isf/src/main/java/ghidra/program/model/data/ISF/IsfDataTypeWriter.java
+++ b/Ghidra/Debug/Debugger-isf/src/main/java/ghidra/program/model/data/ISF/IsfDataTypeWriter.java
@@ -84,7 +84,6 @@ public class IsfDataTypeWriter extends AbstractIsfWriter {
private List
requestedAddresses = new ArrayList<>();
private List requestedSymbols = new ArrayList<>();
- // private List requestedTypes = new ArrayList<>();
private List requestedDataTypes = new ArrayList<>();
private boolean skipSymbols = false;
private boolean skipTypes = false;
@@ -99,6 +98,7 @@ public class IsfDataTypeWriter extends AbstractIsfWriter {
*/
public IsfDataTypeWriter(DataTypeManager dtm, List target, Writer baseWriter) throws IOException {
super(baseWriter);
+ this.baseWriter = baseWriter;
this.dtm = dtm;
if (dtm != null) {
dataOrganization = dtm.getDataOrganization();
@@ -113,10 +113,15 @@ public class IsfDataTypeWriter extends AbstractIsfWriter {
enums = new JsonObject();
functions = new JsonObject();
symbols = new JsonObject();
- requestedDataTypes = target;
+ requestedDataTypes = target == null ? new ArrayList<>() : target;
STRICT = true;
}
+ public JsonObject getRootObject(TaskMonitor monitor) throws CancelledException, IOException {
+ genRoot(monitor);
+ return data;
+ }
+
@Override
protected void genRoot(TaskMonitor monitor) throws CancelledException, IOException {
genMetadata();
diff --git a/Ghidra/Features/Sarif/src/main/java/sarif/export/data/ExtIsfDataTypeWriter.java b/Ghidra/Features/Sarif/src/main/java/sarif/export/data/ExtIsfDataTypeWriter.java
index 4f94119d6d..800ae08147 100644
--- a/Ghidra/Features/Sarif/src/main/java/sarif/export/data/ExtIsfDataTypeWriter.java
+++ b/Ghidra/Features/Sarif/src/main/java/sarif/export/data/ExtIsfDataTypeWriter.java
@@ -19,6 +19,8 @@ import java.io.IOException;
import java.io.Writer;
import java.util.List;
+import com.google.gson.JsonObject;
+
import ghidra.program.model.data.Array;
import ghidra.program.model.data.BitFieldDataType;
import ghidra.program.model.data.BuiltInDataType;
@@ -50,6 +52,11 @@ public class ExtIsfDataTypeWriter extends IsfDataTypeWriter {
STRICT = false;
}
+ public JsonObject getRootObject(TaskMonitor monitor) throws CancelledException, IOException {
+ genRoot(monitor);
+ return root;
+ }
+
@Override
protected void genRoot(TaskMonitor monitor) throws CancelledException, IOException {
super.genRoot(monitor);