summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/browser_theme_provider.h2
-rw-r--r--chrome/browser/gtk/extension_install_prompt_gtk.cc1
-rw-r--r--chrome/browser/gtk/extension_installed_bubble_gtk.cc1
-rw-r--r--chrome/browser/gtk/hung_renderer_dialog_gtk.cc10
-rw-r--r--chrome/browser/gtk/keyword_editor_view.cc1
5 files changed, 11 insertions, 4 deletions
diff --git a/chrome/browser/browser_theme_provider.h b/chrome/browser/browser_theme_provider.h
index 7545707..8ef628e 100644
--- a/chrome/browser/browser_theme_provider.h
+++ b/chrome/browser/browser_theme_provider.h
@@ -130,6 +130,8 @@ class BrowserThemeProvider : public NonThreadSafe,
virtual bool HasCustomImage(int id) const;
virtual RefCountedMemory* GetRawData(int id) const;
#if defined(OS_LINUX)
+ // GdkPixbufs returned by GetPixbufNamed and GetRTLEnabledPixbufNamed are
+ // shared instances owned by the theme provider and should not be freed.
virtual GdkPixbuf* GetPixbufNamed(int id) const;
virtual GdkPixbuf* GetRTLEnabledPixbufNamed(int id) const;
#elif defined(OS_MACOSX)
diff --git a/chrome/browser/gtk/extension_install_prompt_gtk.cc b/chrome/browser/gtk/extension_install_prompt_gtk.cc
index 5266a57..a0feb83 100644
--- a/chrome/browser/gtk/extension_install_prompt_gtk.cc
+++ b/chrome/browser/gtk/extension_install_prompt_gtk.cc
@@ -77,6 +77,7 @@ void ShowInstallPromptDialog(GtkWindow* parent, SkBitmap* skia_icon,
// Put Icon in the left column.
GdkPixbuf* pixbuf = gfx::GdkPixbufFromSkBitmap(skia_icon);
GtkWidget* icon = gtk_image_new_from_pixbuf(pixbuf);
+ g_object_unref(pixbuf);
gtk_box_pack_start(GTK_BOX(icon_hbox), icon, TRUE, TRUE, 0);
// Create a new vbox for the right column.
diff --git a/chrome/browser/gtk/extension_installed_bubble_gtk.cc b/chrome/browser/gtk/extension_installed_bubble_gtk.cc
index 2ac515f..053fe15 100644
--- a/chrome/browser/gtk/extension_installed_bubble_gtk.cc
+++ b/chrome/browser/gtk/extension_installed_bubble_gtk.cc
@@ -150,6 +150,7 @@ void ExtensionInstalledBubbleGtk::ShowInternal() {
gtk_box_pack_start(GTK_BOX(bubble_content), icon_column, FALSE, FALSE,
kIconPadding);
GtkWidget* image = gtk_image_new_from_pixbuf(pixbuf);
+ g_object_unref(pixbuf);
gtk_box_pack_start(GTK_BOX(icon_column), image, FALSE, FALSE, 0);
// Center text column.
diff --git a/chrome/browser/gtk/hung_renderer_dialog_gtk.cc b/chrome/browser/gtk/hung_renderer_dialog_gtk.cc
index ded88d6..4012b99 100644
--- a/chrome/browser/gtk/hung_renderer_dialog_gtk.cc
+++ b/chrome/browser/gtk/hung_renderer_dialog_gtk.cc
@@ -157,12 +157,15 @@ void HungRendererDialogGtk::ShowForTabContents(TabContents* hung_contents) {
title = UTF16ToUTF8(TabContents::GetDefaultTitle());
SkBitmap favicon = it->GetFavIcon();
+ GdkPixbuf* pixbuf = NULL;
+ if (favicon.width() > 0)
+ pixbuf = gfx::GdkPixbufFromSkBitmap(&favicon);
gtk_list_store_set(model_, &tree_iter,
- COL_FAVICON, favicon.width() > 0
- ? gfx::GdkPixbufFromSkBitmap(&favicon)
- : NULL,
+ COL_FAVICON, pixbuf,
COL_TITLE, title.c_str(),
-1);
+ if (pixbuf)
+ g_object_unref(pixbuf);
}
}
gtk_widget_show_all(GTK_WIDGET(dialog_));
@@ -223,4 +226,3 @@ void HideForTabContents(TabContents* contents) {
}
} // namespace hung_renderer_dialog
-
diff --git a/chrome/browser/gtk/keyword_editor_view.cc b/chrome/browser/gtk/keyword_editor_view.cc
index e4bc1a5..d715db9 100644
--- a/chrome/browser/gtk/keyword_editor_view.cc
+++ b/chrome/browser/gtk/keyword_editor_view.cc
@@ -241,6 +241,7 @@ void KeywordEditorView::SetColumnValues(int model_row, GtkTreeIter* iter) {
COL_KEYWORD, WideToUTF8(table_model_->GetText(
model_row, IDS_SEARCH_ENGINES_EDITOR_KEYWORD_COLUMN)).c_str(),
-1);
+ g_object_unref(pixbuf);
}
int KeywordEditorView::GetListStoreRowForModelRow(int model_row) const {