summaryrefslogtreecommitdiffstats
path: root/compiler/optimizing/ssa_builder.cc
diff options
context:
space:
mode:
authorNicolas Geoffray <ngeoffray@google.com>2015-04-03 11:02:38 +0100
committerNicolas Geoffray <ngeoffray@google.com>2015-04-03 12:36:38 +0100
commit3dcd58cd54a922b864494fb7fff4a7f7a8562db9 (patch)
tree1e7b416de3dd46b0301f835632f8b3d0392beb97 /compiler/optimizing/ssa_builder.cc
parentd43f160dc294655885a2c273307d34585c4ce97b (diff)
downloadart-3dcd58cd54a922b864494fb7fff4a7f7a8562db9.zip
art-3dcd58cd54a922b864494fb7fff4a7f7a8562db9.tar.gz
art-3dcd58cd54a922b864494fb7fff4a7f7a8562db9.tar.bz2
Fix a bug when creating a HDeoptimization instruction.
We need to copy the environment, instead of just pointing to an existing one. Otherwise, if the instruction that initially holds the environemnt gets removed from the graph, any update to an instruction in that environment will not be reflected in it. bug:20058506 Change-Id: I2a62476d0851ecbc3707c0da395d8502ee437422
Diffstat (limited to 'compiler/optimizing/ssa_builder.cc')
-rw-r--r--compiler/optimizing/ssa_builder.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/optimizing/ssa_builder.cc b/compiler/optimizing/ssa_builder.cc
index fcc4e69..e154ea4 100644
--- a/compiler/optimizing/ssa_builder.cc
+++ b/compiler/optimizing/ssa_builder.cc
@@ -487,7 +487,7 @@ void SsaBuilder::VisitInstruction(HInstruction* instruction) {
HEnvironment* environment = new (GetGraph()->GetArena()) HEnvironment(
GetGraph()->GetArena(), current_locals_->Size());
environment->CopyFrom(current_locals_);
- instruction->SetEnvironment(environment);
+ instruction->SetRawEnvironment(environment);
}
void SsaBuilder::VisitTemporary(HTemporary* temp) {