From 8e1ef53e3d551f11bb424ae4f29cc1f5eabbe6bc Mon Sep 17 00:00:00 2001 From: Nicolas Geoffray Date: Mon, 23 Nov 2015 12:04:37 +0000 Subject: Do not change to the access check entrypoint when inlined. The allocation entrypoint that deals with access checks does not work with inlined methods. Fixes 542-unresolved-access-check in jit mode. Change-Id: I02290a8b2089fcf06e2216dabf8089920b529765 --- compiler/optimizing/nodes.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'compiler/optimizing/nodes.h') diff --git a/compiler/optimizing/nodes.h b/compiler/optimizing/nodes.h index a5ea15408c..3b5c384c84 100644 --- a/compiler/optimizing/nodes.h +++ b/compiler/optimizing/nodes.h @@ -1631,6 +1631,11 @@ class HEnvironment : public ArenaObject { return holder_; } + + bool IsFromInlinedInvoke() const { + return GetParent() != nullptr; + } + private: // Record instructions' use entries of this environment for constant-time removal. // It should only be called by HInstruction when a new environment use is added. @@ -3243,7 +3248,7 @@ class HInvoke : public HInstruction { void SetIntrinsic(Intrinsics intrinsic, IntrinsicNeedsEnvironmentOrCache needs_env_or_cache); bool IsFromInlinedInvoke() const { - return GetEnvironment()->GetParent() != nullptr; + return GetEnvironment()->IsFromInlinedInvoke(); } bool CanThrow() const OVERRIDE { return true; } -- cgit v1.2.3-59-g8ed1b