GP-1 Minor fixes back-ported from GP-6779: project in-use tracking, data

type archive address factory
This commit is contained in:
ghidra1
2026-06-26 10:43:42 -04:00
parent e8968618bf
commit daf2306fcd
3 changed files with 16 additions and 5 deletions

View File

@@ -1263,11 +1263,9 @@ public class DefaultProjectData implements ProjectData {
@Override
public void close() {
synchronized (this) {
if (!closed) {
closed = true;
}
closed = true;
if (inUseCount != 0) {
return; // delay dispose
return; // delay dispose while still in-use
}
}
dispose();

View File

@@ -656,6 +656,13 @@ public class GhidraFileData {
DomainFileProxy proxy = new DomainFileProxy(name, parent.getPathname(), doa,
DomainFile.DEFAULT_VERSION, fileID, parent.getProjectLocator());
proxy.setLastModified(getLastModifiedTime());
// Notify file manager of in-use domain object.
// A link-file object is indirect with tracking intiated by the URL-referenced file.
if (!isLink()) {
projectData.trackDomainFileInUse(doa);
}
return doa;
}
myFolderItem = folderItem;

View File

@@ -437,6 +437,8 @@ public class StandAloneDataTypeManager extends DataTypeManagerDB implements Clos
final Language lang = language;
final CompilerSpec cspec = compilerSpec;
// Use ProgramAddressFactory to provide stack space
final AddressFactory addrFactory = new ProgramAddressFactory(lang, cspec, s -> null);
super.setProgramArchitecture(new ProgramArchitecture() {
@@ -733,6 +735,10 @@ public class StandAloneDataTypeManager extends DataTypeManagerDB implements Clos
}
}
// Use ProgramAddressFactory to provide stack space
final AddressFactory addrFactory =
new ProgramAddressFactory(language, compilerSpec, s -> null);
ProgramArchitecture programArchitecture = new ProgramArchitecture() {
@Override
@@ -747,7 +753,7 @@ public class StandAloneDataTypeManager extends DataTypeManagerDB implements Clos
@Override
public AddressFactory getAddressFactory() {
return language.getAddressFactory();
return addrFactory;
}
};