diff options
| author | 2015-06-22 07:32:14 +0000 | |
|---|---|---|
| committer | 2015-06-22 07:32:16 +0000 | |
| commit | 7aa557256a87a8a7ad4be7d9ff90aee54a99124c (patch) | |
| tree | dd5e34a864dcb866eea52e85c49f514a39bacda5 /compiler/optimizing/builder.cc | |
| parent | 74f774f0d6389c432122ca262c6705118f5ebd6e (diff) | |
| parent | aa919207d2fb63af11d72d3b7cdbc435769565af (diff) | |
Merge "Fix String Change baseline compiler errors."
Diffstat (limited to 'compiler/optimizing/builder.cc')
| -rw-r--r-- | compiler/optimizing/builder.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/compiler/optimizing/builder.cc b/compiler/optimizing/builder.cc index 2a555e46ac..ffa4cc328d 100644 --- a/compiler/optimizing/builder.cc +++ b/compiler/optimizing/builder.cc @@ -810,6 +810,7 @@ bool HGraphBuilder::BuildInvoke(const Instruction& instruction, // Add move-result for StringFactory method. if (is_string_init) { uint32_t orig_this_reg = is_range ? register_index : args[0]; + UpdateLocal(orig_this_reg, invoke); const VerifiedMethod* verified_method = compiler_driver_->GetVerifiedMethod(dex_file_, dex_compilation_unit_->GetDexMethodIndex()); if (verified_method == nullptr) { @@ -823,10 +824,10 @@ bool HGraphBuilder::BuildInvoke(const Instruction& instruction, if (map_it != string_init_map.end()) { std::set<uint32_t> reg_set = map_it->second; for (auto set_it = reg_set.begin(); set_it != reg_set.end(); ++set_it) { - UpdateLocal(*set_it, invoke); + HInstruction* load_local = LoadLocal(orig_this_reg, Primitive::kPrimNot); + UpdateLocal(*set_it, load_local); } } - UpdateLocal(orig_this_reg, invoke); } return true; } |