From 187aa1fa31e8cf59bde450399875f75f0f66e49b Mon Sep 17 00:00:00 2001 From: Dan <46821332+nsadeveloper789@users.noreply.github.com> Date: Fri, 16 Apr 2021 14:46:07 -0400 Subject: [PATCH] GP-0: Fixed GadpClientServerTest --- .../java/ghidra/dbg/gadp/client/GadpClientTargetObject.java | 2 +- .../src/test/java/ghidra/dbg/gadp/GadpClientServerTest.java | 4 ++-- .../src/main/java/ghidra/dbg/agent/AbstractTargetObject.java | 3 +++ 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Ghidra/Debug/Debugger-gadp/src/main/java/ghidra/dbg/gadp/client/GadpClientTargetObject.java b/Ghidra/Debug/Debugger-gadp/src/main/java/ghidra/dbg/gadp/client/GadpClientTargetObject.java index 7defc5592a..5739f7c19d 100644 --- a/Ghidra/Debug/Debugger-gadp/src/main/java/ghidra/dbg/gadp/client/GadpClientTargetObject.java +++ b/Ghidra/Debug/Debugger-gadp/src/main/java/ghidra/dbg/gadp/client/GadpClientTargetObject.java @@ -41,7 +41,7 @@ public interface GadpClientTargetObject extends SpiTargetObject { @GadpEventHandler(Gadp.EventNotification.EvtCase.OBJECT_INVALIDATE_EVENT) default void handleObjectInvalidateEvent(Gadp.EventNotification notification) { Gadp.ObjectInvalidateEvent evt = notification.getObjectInvalidateEvent(); - getDelegate().doInvalidate(this, evt.getReason()); + getDelegate().invalidateSubtree(this, evt.getReason()); } @GadpEventHandler(Gadp.EventNotification.EvtCase.CACHE_INVALIDATE_EVENT) diff --git a/Ghidra/Debug/Debugger-gadp/src/test/java/ghidra/dbg/gadp/GadpClientServerTest.java b/Ghidra/Debug/Debugger-gadp/src/test/java/ghidra/dbg/gadp/GadpClientServerTest.java index 2057ffdc09..fd3ee528d8 100644 --- a/Ghidra/Debug/Debugger-gadp/src/test/java/ghidra/dbg/gadp/GadpClientServerTest.java +++ b/Ghidra/Debug/Debugger-gadp/src/test/java/ghidra/dbg/gadp/GadpClientServerTest.java @@ -1013,8 +1013,8 @@ public class GadpClientServerTest implements AsyncTestUtils { ssAvail.setElements(List.of(new TestGadpTargetAvailable(ssAvail, 1, "cat") // ), "Changed"); - waitOn(invL.count.waitValue(2)); - waitOn(elemL.count.waitValue(2)); + waitOn(invL.count.waitUntil(c -> c >= 2)); + waitOn(elemL.count.waitUntil(c -> c >= 2)); for (TargetObject a : avail1.values()) { assertFalse(a.isValid()); diff --git a/Ghidra/Debug/Framework-Debugging/src/main/java/ghidra/dbg/agent/AbstractTargetObject.java b/Ghidra/Debug/Framework-Debugging/src/main/java/ghidra/dbg/agent/AbstractTargetObject.java index 949827a20d..93435fa8a5 100644 --- a/Ghidra/Debug/Framework-Debugging/src/main/java/ghidra/dbg/agent/AbstractTargetObject.java +++ b/Ghidra/Debug/Framework-Debugging/src/main/java/ghidra/dbg/agent/AbstractTargetObject.java @@ -243,6 +243,9 @@ public abstract class AbstractTargetObject

implements Sp } protected void doInvalidate(TargetObject branch, String reason) { + if (!valid) { + return; + } valid = false; model.objectInvalidated(getProxy()); listeners.fire.invalidated(getProxy(), branch, reason);