summaryrefslogtreecommitdiff
path: root/compiler/optimizing/nodes.h
diff options
context:
space:
mode:
author Nicolas Geoffray <ngeoffray@google.com> 2015-11-23 12:04:37 +0000
committer Nicolas Geoffray <ngeoffray@google.com> 2015-11-23 12:09:51 +0000
commit8e1ef53e3d551f11bb424ae4f29cc1f5eabbe6bc (patch)
tree7843cb5d19223e3bf4ac0714e23ee1312b5966e6 /compiler/optimizing/nodes.h
parentdde8b8694954c0268eb12a7ccbddf07d9de262fd (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.h7
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; }