mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-09-28 17:11:11 -09:00
GP-4374: 'Pure' Emulation uses Object-based trace.
This commit is contained in:
@@ -573,7 +573,12 @@ public class DBTraceObjectManager implements TraceObjectManager, DBTraceManager
|
||||
public <I extends TraceObjectInterface> I getObjectByPath(long snap, String path,
|
||||
Class<I> iface) {
|
||||
try (LockHold hold = trace.lockRead()) {
|
||||
return getObjectsByPath(Lifespan.at(snap), TraceObjectKeyPath.parse(path)).findAny()
|
||||
TraceObjectKeyPath parsed = TraceObjectKeyPath.parse(path);
|
||||
DBTraceObject object = getObjectByCanonicalPath(parsed);
|
||||
if (object != null) {
|
||||
return object.queryInterface(iface);
|
||||
}
|
||||
return getObjectsByPath(Lifespan.at(snap), parsed).findAny()
|
||||
.map(o -> o.queryInterface(iface))
|
||||
.orElse(null);
|
||||
}
|
||||
|
||||
@@ -803,8 +803,8 @@ public class ToyDBTraceBuilder implements AutoCloseable {
|
||||
* @param path the path pattern
|
||||
* @return the object or null
|
||||
*/
|
||||
public TraceObject objAny(String pat) {
|
||||
return objAny(pat, Lifespan.at(0));
|
||||
public TraceObject objAny(String path) {
|
||||
return objAny(path, Lifespan.at(0));
|
||||
}
|
||||
|
||||
public TraceObject objAny(String path, Lifespan span) {
|
||||
|
||||
Reference in New Issue
Block a user