Index: src/x64/lithium-codegen-x64.cc |
=================================================================== |
--- src/x64/lithium-codegen-x64.cc (revision 7090) |
+++ src/x64/lithium-codegen-x64.cc (working copy) |
@@ -258,7 +258,7 @@ |
bool LCodeGen::GenerateJumpTable() { |
for (int i = 0; i < jump_table_.length(); i++) { |
- JumpTableEntry* info = jump_table_[i]; |
+ JumpTableEntry* info = &jump_table_[i]; |
__ bind(&(info->label_)); |
__ Jump(info->address_, RelocInfo::RUNTIME_ENTRY); |
} |
@@ -538,17 +538,13 @@ |
if (cc == no_condition) { |
__ Jump(entry, RelocInfo::RUNTIME_ENTRY); |
} else { |
- JumpTableEntry* jump_info = NULL; |
// We often have several deopts to the same entry, reuse the last |
// jump entry if this is the case. |
- if (jump_table_.length() > 0 && |
- jump_table_[jump_table_.length() - 1]->address_ == entry) { |
- jump_info = jump_table_[jump_table_.length() - 1]; |
- } else { |
- jump_info = new JumpTableEntry(entry); |
- jump_table_.Add(jump_info); |
+ if (jump_table_.is_empty() || |
+ jump_table_.last().address_ != entry) { |
+ jump_table_.Add(entry); |
Lasse Reichstein
2011/03/09 09:57:07
If the JumpTableEntry constructor was explicit, th
|
} |
- __ j(cc, &jump_info->label_); |
+ __ j(cc, &jump_table_.last().label_); |
} |
} |