Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(294)

Issue 552044: Gtk: fix reference counting/destruction of GtkMenu* in MenuGtk.... (Closed)

Created:
10 years, 11 months ago by Evan Stade
Modified:
9 years, 6 months ago
CC:
chromium-reviews_googlegroups.com, ben+cc_chromium.org
Visibility:
Public.

Description

Gtk: fix reference counting/destruction of GtkMenu* in MenuGtk. BUG=31977, 31765

Patch Set 1 #

Patch Set 2 : '' #

Unified diffs Side-by-side diffs Delta from patch set Stats (+6 lines, -0 lines) Patch
M chrome/browser/gtk/menu_gtk.cc View 1 4 chunks +6 lines, -0 lines 0 comments Download

Messages

Total messages: 2 (0 generated)
Evan Stade
10 years, 11 months ago (2010-01-19 18:31:33 UTC) #1
Elliot Glaysher
10 years, 11 months ago (2010-01-19 21:06:40 UTC) #2
LGTM

On Tue, Jan 19, 2010 at 10:31 AM,  <estade@chromium.org> wrote:
> Reviewers: bryeung, Elliot Glaysher,
>
> Description:
> Gtk: fix reference counting/destruction of GtkMenu* in MenuGtk.
>
> regression caused by r35404
>
> credit to Bryan Yeung for finding the bug
>
> BUG=31977,31765
> TEST=see bugs
>
>
> Please review this at http://codereview.chromium.org/552044
>
> SVN Base: svn://chrome-svn/chrome/trunk/src/
>
> Affected files:
>  M     chrome/browser/gtk/menu_gtk.cc
>
>
> Index: chrome/browser/gtk/menu_gtk.cc
> ===================================================================
> --- chrome/browser/gtk/menu_gtk.cc      (revision 36527)
> +++ chrome/browser/gtk/menu_gtk.cc      (working copy)
> @@ -28,6 +28,7 @@
>       menu_(gtk_menu_new()),
>       factory_(this) {
>   DCHECK(menu_data);
> +  g_object_ref_sink(menu_);
>   ConnectSignalHandlers();
>   BuildMenuIn(menu_, menu_data);
>  }
> @@ -38,6 +39,7 @@
>       dummy_accel_group_(gtk_accel_group_new()),
>       menu_(gtk_menu_new()),
>       factory_(this) {
> +  g_object_ref_sink(menu_);
>   ConnectSignalHandlers();
>  }
>
> @@ -48,6 +50,7 @@
>       dummy_accel_group_(gtk_accel_group_new()),
>       menu_(gtk_menu_new()),
>       factory_(this) {
> +  g_object_ref_sink(menu_);
>   DCHECK(model);
>   ConnectSignalHandlers();
>   if (model)
> @@ -55,6 +58,9 @@
>  }
>
>  MenuGtk::~MenuGtk() {
> +  Cancel();
> +  g_object_unref(menu_);
> +
>   STLDeleteContainerPointers(submenus_we_own_.begin(),
> submenus_we_own_.end());
>   g_object_unref(dummy_accel_group_);
>  }
>
>
>

Powered by Google App Engine
This is Rietveld 408576698