diff options
author | 2015-11-23 12:04:37 +0000 | |
---|---|---|
committer | 2015-11-23 12:09:51 +0000 | |
commit | 8e1ef53e3d551f11bb424ae4f29cc1f5eabbe6bc (patch) | |
tree | 7843cb5d19223e3bf4ac0714e23ee1312b5966e6 /compiler/optimizing/nodes.h | |
parent | dde8b8694954c0268eb12a7ccbddf07d9de262fd (diff) |
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
Diffstat (limited to 'compiler/optimizing/nodes.h')
-rw-r--r-- | compiler/optimizing/nodes.h | 7 |
1 files changed, 6 insertions, 1 deletions
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<kArenaAllocEnvironment> { 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; } |