diff options
author | Calin Juravle <calin@google.com> | 2015-10-16 16:28:46 +0100 |
---|---|---|
committer | Calin Juravle <calin@google.com> | 2015-10-16 17:51:02 +0100 |
commit | 54d8f4bc810e7e0767f44cb77e5706a232b644bb (patch) | |
tree | c6894555e7590bad0ae4bee565e64b8907651f4f /compiler | |
parent | ddb2a98fc557753a8080f23bea79bec3b89fee2c (diff) | |
download | art-54d8f4bc810e7e0767f44cb77e5706a232b644bb.zip art-54d8f4bc810e7e0767f44cb77e5706a232b644bb.tar.gz art-54d8f4bc810e7e0767f44cb77e5706a232b644bb.tar.bz2 |
Fix in reference type propagation
We miss updating the type of objects if their nullability gets updated
first.
Bug: 25008765
(cherry picked from commit 83853392e26b2aa48328bb90c9f9c57b32c280dc)
Change-Id: I81aa759d96008251d74f941494abe74aa4b52bdc
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/optimizing/reference_type_propagation.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/optimizing/reference_type_propagation.cc b/compiler/optimizing/reference_type_propagation.cc index 40ec46c..f8e4d10 100644 --- a/compiler/optimizing/reference_type_propagation.cc +++ b/compiler/optimizing/reference_type_propagation.cc @@ -316,7 +316,9 @@ bool ReferenceTypePropagation::UpdateNullability(HInstruction* instr) { void ReferenceTypePropagation::ProcessWorklist() { while (!worklist_.IsEmpty()) { HInstruction* instruction = worklist_.Pop(); - if (UpdateNullability(instruction) || UpdateReferenceTypeInfo(instruction)) { + bool updated_nullability = UpdateNullability(instruction); + bool updated_reference_type = UpdateReferenceTypeInfo(instruction); + if (updated_nullability || updated_reference_type) { AddDependentInstructionsToWorklist(instruction); } } |