| Index: views/view.cc
|
| diff --git a/views/view.cc b/views/view.cc
|
| index ebbb36aa1aa4bc771a6ebb49e7eed817f814a06d..9e801ee593fbe692b313ddd4901128cdb99a15f4 100644
|
| --- a/views/view.cc
|
| +++ b/views/view.cc
|
| @@ -11,6 +11,7 @@
|
|
|
| #include "base/logging.h"
|
| #include "base/message_loop.h"
|
| +#include "base/scoped_ptr.h"
|
| #include "base/utf_string_conversions.h"
|
| #include "gfx/canvas_skia.h"
|
| #include "gfx/path.h"
|
| @@ -631,6 +632,7 @@ void View::DoRemoveChildView(View* a_view,
|
| const ViewList::iterator i = find(child_views_.begin(),
|
| child_views_.end(),
|
| a_view);
|
| + scoped_ptr<View> view_to_be_deleted;
|
| if (i != child_views_.end()) {
|
| if (update_focus_cycle) {
|
| // Let's remove the view from the focus traversal.
|
| @@ -649,7 +651,7 @@ void View::DoRemoveChildView(View* a_view,
|
| a_view->SetParent(NULL);
|
|
|
| if (delete_removed_view && a_view->IsParentOwned())
|
| - delete a_view;
|
| + view_to_be_deleted.reset(a_view);
|
|
|
| child_views_.erase(i);
|
| }
|
|
|