From afcf3acc715aef47855ced19434dba2f52b92400 Mon Sep 17 00:00:00 2001 From: "dcheng@chromium.org" Date: Fri, 24 May 2013 21:49:42 +0000 Subject: [PATCH] Fix crash when quickly dragging a new tab. The root cause is r185551, which changed the semantics of scoped_ptr::reset(). This code depended on the fact that a get() during a reset() would return the original value of the stored pointer, but after r185551, it returns the value that it is being reset to. This caused the code to stop an animation and the code to end a drag to conflict, since the animation code would sometimes delete a TabGtk that was still being dragged. BUG=228918 Review URL: https://chromiumcodereview.appspot.com/16035005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@202184 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc b/chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc index d86364d..4e6c352 100644 --- a/chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc +++ b/chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc @@ -1406,7 +1406,7 @@ void TabStripGtk::RemoveTabAt(int index) { // Remove the Tab from the TabStrip's list. tab_data_.erase(tab_data_.begin() + index); - if (!IsDragSessionActive() || !drag_controller_->IsDraggingTab(removed)) { + if (!removed->dragging()) { gtk_container_remove(GTK_CONTAINER(tabstrip_.get()), removed->widget()); delete removed; } -- 1.8.2.3