From 3ffa983749078a66a57e7b6709c655df860b83b4 Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Tue, 23 Nov 2010 18:10:53 +0300 Subject: [PATCH] fix super method evaluation --- .../debugger/engine/evaluation/expression/DisableGC.java | 4 ++++ .../engine/evaluation/expression/MethodEvaluator.java | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/expression/DisableGC.java b/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/expression/DisableGC.java index ff9194c4b2b7..1c5e7182c6ad 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/expression/DisableGC.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/expression/DisableGC.java @@ -38,6 +38,10 @@ public class DisableGC implements Evaluator{ return result; } + public Evaluator getDelegate() { + return myDelegate; + } + public Modifier getModifier() { return myDelegate.getModifier(); } diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/expression/MethodEvaluator.java b/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/expression/MethodEvaluator.java index 94875d7f44d3..257bad282949 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/expression/MethodEvaluator.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/expression/MethodEvaluator.java @@ -61,7 +61,11 @@ public class MethodEvaluator implements Evaluator { public Object evaluate(EvaluationContextImpl context) throws EvaluateException { if(!context.getDebugProcess().isAttached()) return null; DebugProcessImpl debugProcess = context.getDebugProcess(); - final boolean requiresSuperObject = myObjectEvaluator instanceof SuperEvaluator; + + final boolean requiresSuperObject = + myObjectEvaluator instanceof SuperEvaluator || + (myObjectEvaluator instanceof DisableGC && ((DisableGC)myObjectEvaluator).getDelegate() instanceof SuperEvaluator); + final Object object = myObjectEvaluator.evaluate(context); if (LOG.isDebugEnabled()) { LOG.debug("MethodEvaluator: object = " + object);