GP-3970 program caching and refactoring of ProgramManager and OpenProgramTask

This commit is contained in:
ghidragon
2023-11-27 11:47:18 -05:00
parent 5d487a6518
commit 7d67188d0b
34 changed files with 2198 additions and 948 deletions

View File

@@ -621,9 +621,7 @@ public class ObjectTreeModel implements DisplaysModified {
protected List<GTreeNode> generateObjectChildren(TraceObject object) {
List<GTreeNode> result = ObjectTableModel
.distinctCanonical(object.getValues(span)
.stream()
.filter(this::isValueVisible))
.distinctCanonical(object.getValues(span).stream().filter(this::isValueVisible))
.map(v -> nodeCache.getOrCreateNode(v))
.sorted()
.collect(Collectors.toList());

View File

@@ -26,6 +26,7 @@ import org.apache.commons.lang3.tuple.Pair;
import db.Transaction;
import ghidra.framework.data.DomainObjectEventQueues;
import ghidra.framework.data.DomainObjectFileListener;
import ghidra.framework.model.*;
import ghidra.framework.options.Options;
import ghidra.framework.store.LockException;
@@ -1274,6 +1275,16 @@ public class DBTraceProgramView implements TraceProgramView {
trace.removeCloseListener(listener);
}
@Override
public void addDomainFileListener(DomainObjectFileListener listener) {
throw new UnsupportedOperationException();
}
@Override
public void removeDomainFileListener(DomainObjectFileListener listener) {
throw new UnsupportedOperationException();
}
@Override
public EventQueueID createPrivateEventQueue(DomainObjectListener listener, int maxDelay) {
getEventTranslator();

View File

@@ -21,6 +21,7 @@ import java.util.*;
import db.Transaction;
import ghidra.framework.data.DomainObjectEventQueues;
import ghidra.framework.data.DomainObjectFileListener;
import ghidra.framework.model.*;
import ghidra.framework.options.Options;
import ghidra.framework.store.LockException;
@@ -478,6 +479,16 @@ public class DBTraceProgramViewRegisters implements TraceProgramView {
view.removeCloseListener(listener);
}
@Override
public void addDomainFileListener(DomainObjectFileListener listener) {
throw new UnsupportedOperationException();
}
@Override
public void removeDomainFileListener(DomainObjectFileListener listener) {
throw new UnsupportedOperationException();
}
@Override
public EventQueueID createPrivateEventQueue(DomainObjectListener listener, int maxDelay) {
return eventQueues.createPrivateEventQueue(listener, maxDelay);