Combine loop epilogue into main loop body to reduce duplication.

This commit is contained in:
Rafael Ávila de Espíndola 2015-02-04 17:37:05 -05:00
parent b9394193d0
commit b39b8b9d90
2 changed files with 7 additions and 13 deletions

View File

@ -1,3 +1,8 @@
2015-02-04 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
* merge.cc (do_add_input_section): Combine loop epilogue into main loop
body.
2015-02-04 Peter Collingbourne <pcc@google.com> 2015-02-04 Peter Collingbourne <pcc@google.com>
* plugin.cc (Pluginobj::get_symbol_resolution_info): Resolve * plugin.cc (Pluginobj::get_symbol_resolution_info): Resolve

View File

@ -564,9 +564,9 @@ Output_merge_string<Char_type>::do_add_input_section(Relobj* object,
& (this->addralign() - 1)); & (this->addralign() - 1));
bool has_misaligned_strings = false; bool has_misaligned_strings = false;
while (p < pend0) while (p < pend)
{ {
size_t len = string_length(p); size_t len = p < pend0 ? string_length(p) : pend - p;
// Within merge input section each string must be aligned. // Within merge input section each string must be aligned.
if (len != 0 if (len != 0
@ -581,17 +581,6 @@ Output_merge_string<Char_type>::do_add_input_section(Relobj* object,
p += len + 1; p += len + 1;
i += (len + 1) * sizeof(Char_type); i += (len + 1) * sizeof(Char_type);
} }
if (p < pend)
{
size_t len = pend - p;
Stringpool::Key key;
this->stringpool_.add_with_length(p, len, true, &key);
merged_strings.push_back(Merged_string(i, key));
i += (len + 1) * sizeof(Char_type);
}
// Record the last offset in the input section so that we can // Record the last offset in the input section so that we can
// compute the length of the last string. // compute the length of the last string.