| Index: src/jump-target-ia32.cc
|
| ===================================================================
|
| --- src/jump-target-ia32.cc (revision 894)
|
| +++ src/jump-target-ia32.cc (working copy)
|
| @@ -69,11 +69,13 @@
|
|
|
| if (expected_frame_ == NULL) {
|
| expected_frame_ = current_frame;
|
| - expected_frame_->EnsureMergable();
|
| // The frame at the actual function return will always have height zero.
|
| if (code_generator_->IsActualFunctionReturn(this)) {
|
| expected_frame_->Forget(expected_frame_->height());
|
| }
|
| + if (!expected_frame_->IsMergable()) {
|
| + expected_frame_->MakeMergable();
|
| + }
|
| code_generator_->set_frame(NULL);
|
| } else {
|
| // No code needs to be emitted to merge to the expected frame at the
|
| @@ -101,11 +103,13 @@
|
|
|
| if (expected_frame_ == NULL) {
|
| expected_frame_ = new VirtualFrame(current_frame);
|
| - expected_frame_->EnsureMergable();
|
| // The frame at the actual function return will always have height zero.
|
| if (code_generator_->IsActualFunctionReturn(this)) {
|
| expected_frame_->Forget(expected_frame_->height());
|
| }
|
| + if (!expected_frame_->IsMergable()) {
|
| + expected_frame_->MakeMergable();
|
| + }
|
| } else {
|
| // No code needs to be emitted to merge to the expected frame at the
|
| // actual function return.
|
| @@ -132,7 +136,9 @@
|
| ASSERT(expected_frame_ == NULL);
|
|
|
| expected_frame_ = new VirtualFrame(current_frame);
|
| - expected_frame_->EnsureMergable();
|
| + if (!expected_frame_->IsMergable()) {
|
| + expected_frame_->MakeMergable();
|
| + }
|
| // Adjust the expected frame's height to account for the return address
|
| // pushed by the call instruction.
|
| expected_frame_->Adjust(1);
|
| @@ -156,11 +162,13 @@
|
|
|
| if (expected_frame_ == NULL) {
|
| expected_frame_ = new VirtualFrame(current_frame);
|
| - expected_frame_->EnsureMergable();
|
| // The frame at the actual function return will always have height zero.
|
| if (code_generator_->IsActualFunctionReturn(this)) {
|
| expected_frame_->Forget(expected_frame_->height());
|
| }
|
| + if (!expected_frame_->IsMergable()) {
|
| + expected_frame_->MakeMergable();
|
| + }
|
| } else if (current_frame == NULL) {
|
| code_generator_->set_frame(new VirtualFrame(expected_frame_));
|
| } else {
|
|
|