GT-3571 Numerous changes to datatype resolve/replace addressing

performance and conflict handling.  Corrected composite merge
deficiencies.  Added datatype resolve/equivalence caches for performance
improvement.  Added deferred pointer resolution for structures and
unions.  Corrected datatype parent/child update
This commit is contained in:
ghidra1 2020-02-28 18:45:31 -05:00
parent d5cc72fd14
commit c2d9629f57
113 changed files with 3515 additions and 1853 deletions

View file

@ -15,8 +15,7 @@
*/
package ghidra.program.model.data;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.junit.Assert.*;
import java.util.*;
@ -111,7 +110,7 @@ public class CompositeTestUtils {
}
private static void collectComposites(Composite composite, Set<Composite> collection) {
for (DataTypeComponent c : composite.getComponents()) {
for (DataTypeComponent c : composite.getDefinedComponents()) {
DataType dt = c.getDataType();
if (dt instanceof Composite) {
Composite childComposite = (Composite) dt;

View file

@ -17,7 +17,6 @@ package ghidra.program.model.data;
import java.net.URL;
import ghidra.app.plugin.core.datamgr.archive.SourceArchive;
import ghidra.docking.settings.Settings;
import ghidra.docking.settings.SettingsDefinition;
import ghidra.program.model.mem.MemBuffer;

View file

@ -17,8 +17,8 @@ package ghidra.program.model.data;
import java.util.*;
import ghidra.app.plugin.core.datamgr.archive.SourceArchive;
import ghidra.util.*;
import ghidra.util.exception.CancelledException;
import ghidra.util.task.TaskMonitor;
/**
@ -58,6 +58,12 @@ public class TestDoubleDataTypeManager implements DataTypeManager {
throw new UnsupportedOperationException();
}
@Override
public void addDataTypes(Collection<DataType> dataTypes, DataTypeConflictHandler handler,
TaskMonitor monitor) throws CancelledException {
throw new UnsupportedOperationException();
}
@Override
public Iterator<DataType> getAllDataTypes() {
throw new UnsupportedOperationException();

View file

@ -17,9 +17,9 @@ package ghidra.program.model.data;
import java.util.*;
import ghidra.app.plugin.core.datamgr.archive.SourceArchive;
import ghidra.util.InvalidNameException;
import ghidra.util.UniversalID;
import ghidra.util.exception.CancelledException;
import ghidra.util.task.TaskMonitor;
/**
@ -57,6 +57,12 @@ public class TestDummyDataTypeManager implements DataTypeManager {
return null;
}
@Override
public void addDataTypes(Collection<DataType> dataTypes, DataTypeConflictHandler handler,
TaskMonitor monitor) throws CancelledException {
// stub
}
@Override
public Iterator<DataType> getAllDataTypes() {
// stub