[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.17-1283-gcf603cf
kov at webkit.org
kov at webkit.org
Tue Jan 5 23:51:52 UTC 2010
The following commit has been merged in the webkit-1.1 branch:
commit f939fc167bfefdc63c1a5213017c84a5377a8940
Author: kov at webkit.org <kov at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu Dec 17 12:02:21 2009 +0000
WebCore
2009-12-17 Martin Robinson <martin.james.robinson at gmail.com>
Reviewed by Gustavo Noronha.
[GTK] WebKit GTK needs a wrapper for ref counted glib/gobject structs
https://bugs.webkit.org/show_bug.cgi?id=21599
Add GRefPtr support for GTK types to WebCore, as JSC does not link against
GTK+. Also convert PopupMenu::m_poup from a raw pointer to a GRefPtr.
No new tests as functionality has not changed.
* GNUmakefile.am:
* platform/PopupMenu.h:
* platform/gtk/GRefPtrGtk.cpp: Added.
(WTF::refGPtr):
(WTF::derefGPtr):
* platform/gtk/GRefPtrGtk.h: Added.
* platform/gtk/PopupMenuGtk.cpp:
(WebCore::PopupMenu::PopupMenu):
(WebCore::PopupMenu::~PopupMenu):
(WebCore::PopupMenu::show):
(WebCore::PopupMenu::hide):
(WebCore::PopupMenu::menuRemoveItem):
JavaScriptCore
2009-12-17 Martin Robinson <martin.james.robinson at gmail.com>
Reviewed by Gustavo Noronha.
[GTK] WebKit GTK needs a wrapper for ref counted glib/gobject structs
https://bugs.webkit.org/show_bug.cgi?id=21599
Implement GRefPtr, a smart pointer for reference counted GObject types.
* GNUmakefile.am:
* wtf/gtk/GOwnPtr.cpp:
(WTF::GDir):
* wtf/gtk/GRefPtr.h: Added.
(WTF::):
(WTF::GRefPtr::GRefPtr):
(WTF::GRefPtr::~GRefPtr):
(WTF::GRefPtr::clear):
(WTF::GRefPtr::get):
(WTF::GRefPtr::operator*):
(WTF::GRefPtr::operator->):
(WTF::GRefPtr::operator!):
(WTF::GRefPtr::operator UnspecifiedBoolType):
(WTF::GRefPtr::hashTableDeletedValue):
(WTF::::operator):
(WTF::::swap):
(WTF::swap):
(WTF::operator==):
(WTF::operator!=):
(WTF::static_pointer_cast):
(WTF::const_pointer_cast):
(WTF::getPtr):
(WTF::adoptGRef):
(WTF::refGPtr):
(WTF::derefGPtr):
WebKit/gtk
2009-12-17 Martin Robinson <martin.james.robinson at gmail.com>
Reviewed by Gustavo Noronha.
[GTK] WebKit GTK needs a wrapper for ref counted glib/gobject structs
https://bugs.webkit.org/show_bug.cgi?id=21599
Convert a use of GOwnPtr for a reference counted type to GRefPtr.
* WebCoreSupport/FrameLoaderClientGtk.cpp:
(WebKit::FrameLoaderClient::createPlugin):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@52246 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/JavaScriptCore/ChangeLog b/JavaScriptCore/ChangeLog
index 2f6356f..0a2b3e7 100644
--- a/JavaScriptCore/ChangeLog
+++ b/JavaScriptCore/ChangeLog
@@ -1,3 +1,38 @@
+2009-12-17 Martin Robinson <martin.james.robinson at gmail.com>
+
+ Reviewed by Gustavo Noronha.
+
+ [GTK] WebKit GTK needs a wrapper for ref counted glib/gobject structs
+ https://bugs.webkit.org/show_bug.cgi?id=21599
+
+ Implement GRefPtr, a smart pointer for reference counted GObject types.
+
+ * GNUmakefile.am:
+ * wtf/gtk/GOwnPtr.cpp:
+ (WTF::GDir):
+ * wtf/gtk/GRefPtr.h: Added.
+ (WTF::):
+ (WTF::GRefPtr::GRefPtr):
+ (WTF::GRefPtr::~GRefPtr):
+ (WTF::GRefPtr::clear):
+ (WTF::GRefPtr::get):
+ (WTF::GRefPtr::operator*):
+ (WTF::GRefPtr::operator->):
+ (WTF::GRefPtr::operator!):
+ (WTF::GRefPtr::operator UnspecifiedBoolType):
+ (WTF::GRefPtr::hashTableDeletedValue):
+ (WTF::::operator):
+ (WTF::::swap):
+ (WTF::swap):
+ (WTF::operator==):
+ (WTF::operator!=):
+ (WTF::static_pointer_cast):
+ (WTF::const_pointer_cast):
+ (WTF::getPtr):
+ (WTF::adoptGRef):
+ (WTF::refGPtr):
+ (WTF::derefGPtr):
+
2009-12-17 Gustavo Noronha Silva <gustavo.noronha at collabora.co.uk>
Unreviewed. Build fixes for make distcheck.
diff --git a/JavaScriptCore/GNUmakefile.am b/JavaScriptCore/GNUmakefile.am
index a4d62a2..ceb5b80 100644
--- a/JavaScriptCore/GNUmakefile.am
+++ b/JavaScriptCore/GNUmakefile.am
@@ -291,6 +291,7 @@ javascriptcore_sources += \
JavaScriptCore/wtf/VectorTraits.h \
JavaScriptCore/wtf/gtk/GOwnPtr.cpp \
JavaScriptCore/wtf/gtk/GOwnPtr.h \
+ JavaScriptCore/wtf/gtk/GRefPtr.h \
JavaScriptCore/wtf/gtk/MainThreadGtk.cpp \
JavaScriptCore/wtf/gtk/ThreadingGtk.cpp \
JavaScriptCore/wtf/unicode/Collator.h \
diff --git a/JavaScriptCore/wtf/gtk/GOwnPtr.cpp b/JavaScriptCore/wtf/gtk/GOwnPtr.cpp
index 8999962..1a151b9 100644
--- a/JavaScriptCore/wtf/gtk/GOwnPtr.cpp
+++ b/JavaScriptCore/wtf/gtk/GOwnPtr.cpp
@@ -57,11 +57,4 @@ template <> void freeOwnedGPtr<GDir>(GDir* ptr)
if (ptr)
g_dir_close(ptr);
}
-
-template <> void freeOwnedGPtr<GHashTable>(GHashTable* ptr)
-{
- if (ptr)
- g_hash_table_unref(ptr);
-}
-
} // namespace WTF
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index a08395a..a982b10 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,28 @@
+2009-12-17 Martin Robinson <martin.james.robinson at gmail.com>
+
+ Reviewed by Gustavo Noronha.
+
+ [GTK] WebKit GTK needs a wrapper for ref counted glib/gobject structs
+ https://bugs.webkit.org/show_bug.cgi?id=21599
+
+ Add GRefPtr support for GTK types to WebCore, as JSC does not link against
+ GTK+. Also convert PopupMenu::m_poup from a raw pointer to a GRefPtr.
+
+ No new tests as functionality has not changed.
+
+ * GNUmakefile.am:
+ * platform/PopupMenu.h:
+ * platform/gtk/GRefPtrGtk.cpp: Added.
+ (WTF::refGPtr):
+ (WTF::derefGPtr):
+ * platform/gtk/GRefPtrGtk.h: Added.
+ * platform/gtk/PopupMenuGtk.cpp:
+ (WebCore::PopupMenu::PopupMenu):
+ (WebCore::PopupMenu::~PopupMenu):
+ (WebCore::PopupMenu::show):
+ (WebCore::PopupMenu::hide):
+ (WebCore::PopupMenu::menuRemoveItem):
+
2009-12-17 Evan Martin <evan at chromium.org>
Reviewed by Xan Lopez.
diff --git a/WebCore/GNUmakefile.am b/WebCore/GNUmakefile.am
index 160fe93..a5efdb7 100644
--- a/WebCore/GNUmakefile.am
+++ b/WebCore/GNUmakefile.am
@@ -1981,6 +1981,8 @@ webcoregtk_sources += \
WebCore/platform/gtk/EventLoopGtk.cpp \
WebCore/platform/gtk/FileChooserGtk.cpp \
WebCore/platform/gtk/FileSystemGtk.cpp \
+ WebCore/platform/gtk/GRefPtrGtk.cpp \
+ WebCore/platform/gtk/GRefPtrGtk.h \
WebCore/platform/gtk/GtkPluginWidget.cpp \
WebCore/platform/gtk/GtkPluginWidget.h \
WebCore/platform/gtk/KURLGtk.cpp \
diff --git a/WebCore/platform/PopupMenu.h b/WebCore/platform/PopupMenu.h
index dbd2c93..449d475 100644
--- a/WebCore/platform/PopupMenu.h
+++ b/WebCore/platform/PopupMenu.h
@@ -48,6 +48,7 @@ class QtAbstractWebPopup;
typedef struct _GtkMenu GtkMenu;
typedef struct _GtkMenuItem GtkMenuItem;
typedef struct _GtkWidget GtkWidget;
+#include "GRefPtrGtk.h"
#include <wtf/HashMap.h>
#include <glib.h>
#elif PLATFORM(WX)
@@ -173,7 +174,7 @@ private:
bool m_showPopup;
#elif PLATFORM(GTK)
IntPoint m_menuPosition;
- GtkMenu* m_popup;
+ GRefPtr<GtkMenu> m_popup;
HashMap<GtkWidget*, int> m_indexMap;
static void menuItemActivated(GtkMenuItem* item, PopupMenu*);
static void menuUnmapped(GtkWidget*, PopupMenu*);
diff --git a/WebCore/platform/gtk/PopupMenuGtk.cpp b/WebCore/platform/gtk/PopupMenuGtk.cpp
index 3f6b02a..0363ac4 100644
--- a/WebCore/platform/gtk/PopupMenuGtk.cpp
+++ b/WebCore/platform/gtk/PopupMenuGtk.cpp
@@ -35,16 +35,14 @@ namespace WebCore {
PopupMenu::PopupMenu(PopupMenuClient* client)
: m_popupClient(client)
- , m_popup(0)
{
}
PopupMenu::~PopupMenu()
{
if (m_popup) {
- g_signal_handlers_disconnect_matched(m_popup, G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, this);
+ g_signal_handlers_disconnect_matched(m_popup.get(), G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, this);
hide();
- g_object_unref(m_popup);
}
}
@@ -54,10 +52,9 @@ void PopupMenu::show(const IntRect& rect, FrameView* view, int index)
if (!m_popup) {
m_popup = GTK_MENU(gtk_menu_new());
- g_object_ref_sink(G_OBJECT(m_popup));
- g_signal_connect(m_popup, "unmap", G_CALLBACK(menuUnmapped), this);
+ g_signal_connect(m_popup.get(), "unmap", G_CALLBACK(menuUnmapped), this);
} else
- gtk_container_foreach(GTK_CONTAINER(m_popup), reinterpret_cast<GtkCallback>(menuRemoveItem), this);
+ gtk_container_foreach(GTK_CONTAINER(m_popup.get()), reinterpret_cast<GtkCallback>(menuRemoveItem), this);
int x, y;
gdk_window_get_origin(GTK_WIDGET(view->hostWindow()->platformPageClient())->window, &x, &y);
@@ -78,20 +75,20 @@ void PopupMenu::show(const IntRect& rect, FrameView* view, int index)
// FIXME: Apply the PopupMenuStyle from client()->itemStyle(i)
gtk_widget_set_sensitive(item, client()->itemIsEnabled(i));
- gtk_menu_shell_append(GTK_MENU_SHELL(m_popup), item);
+ gtk_menu_shell_append(GTK_MENU_SHELL(m_popup.get()), item);
gtk_widget_show(item);
}
- gtk_menu_set_active(m_popup, index);
+ gtk_menu_set_active(m_popup.get(), index);
// The size calls are directly copied from gtkcombobox.c which is LGPL
GtkRequisition requisition;
- gtk_widget_set_size_request(GTK_WIDGET(m_popup), -1, -1);
- gtk_widget_size_request(GTK_WIDGET(m_popup), &requisition);
- gtk_widget_set_size_request(GTK_WIDGET(m_popup), MAX(rect.width(), requisition.width), -1);
+ gtk_widget_set_size_request(GTK_WIDGET(m_popup.get()), -1, -1);
+ gtk_widget_size_request(GTK_WIDGET(m_popup.get()), &requisition);
+ gtk_widget_set_size_request(GTK_WIDGET(m_popup.get()), std::max(rect.width(), requisition.width), -1);
- GList* children = GTK_MENU_SHELL(m_popup)->children;
+ GList* children = GTK_MENU_SHELL(m_popup.get())->children;
if (size)
for (int i = 0; i < size; i++) {
if (i > index)
@@ -103,18 +100,17 @@ void PopupMenu::show(const IntRect& rect, FrameView* view, int index)
m_menuPosition.setY(m_menuPosition.y() - itemRequisition.height);
children = g_list_next(children);
- }
- else
- // Center vertically the empty popup in the combo box area
- m_menuPosition.setY(m_menuPosition.y() - rect.height() / 2);
+ } else
+ // Center vertically the empty popup in the combo box area
+ m_menuPosition.setY(m_menuPosition.y() - rect.height() / 2);
- gtk_menu_popup(m_popup, NULL, NULL, reinterpret_cast<GtkMenuPositionFunc>(menuPositionFunction), this, 0, gtk_get_current_event_time());
+ gtk_menu_popup(m_popup.get(), 0, 0, reinterpret_cast<GtkMenuPositionFunc>(menuPositionFunction), this, 0, gtk_get_current_event_time());
}
void PopupMenu::hide()
{
ASSERT(m_popup);
- gtk_menu_popdown(m_popup);
+ gtk_menu_popdown(m_popup.get());
}
void PopupMenu::updateFromElement()
@@ -150,7 +146,7 @@ void PopupMenu::menuPositionFunction(GtkMenu*, gint* x, gint* y, gboolean* pushI
void PopupMenu::menuRemoveItem(GtkWidget* widget, PopupMenu* that)
{
ASSERT(that->m_popup);
- gtk_container_remove(GTK_CONTAINER(that->m_popup), widget);
+ gtk_container_remove(GTK_CONTAINER(that->m_popup.get()), widget);
}
}
diff --git a/WebKit/gtk/ChangeLog b/WebKit/gtk/ChangeLog
index cf13c7f..05d7706 100644
--- a/WebKit/gtk/ChangeLog
+++ b/WebKit/gtk/ChangeLog
@@ -1,3 +1,15 @@
+2009-12-17 Martin Robinson <martin.james.robinson at gmail.com>
+
+ Reviewed by Gustavo Noronha.
+
+ [GTK] WebKit GTK needs a wrapper for ref counted glib/gobject structs
+ https://bugs.webkit.org/show_bug.cgi?id=21599
+
+ Convert a use of GOwnPtr for a reference counted type to GRefPtr.
+
+ * WebCoreSupport/FrameLoaderClientGtk.cpp:
+ (WebKit::FrameLoaderClient::createPlugin):
+
2009-12-16 Dan Winship <danw at gnome.org>
Reviewed by Gustavo Noronha Silva.
diff --git a/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp b/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp
index 0eaa7c8..a2e3ca7 100644
--- a/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp
+++ b/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp
@@ -33,6 +33,7 @@
#include "FrameView.h"
#include "FrameTree.h"
#include "GOwnPtr.h"
+#include "GRefPtr.h"
#include "GtkPluginWidget.h"
#include "HTMLAppletElement.h"
#include "HTMLFormElement.h"
@@ -440,7 +441,7 @@ PassRefPtr<Widget> FrameLoaderClient::createPlugin(const IntSize& pluginSize, HT
CString mimeTypeString = mimeType.utf8();
ASSERT(paramNames.size() == paramValues.size());
- GOwnPtr<GHashTable> hash(g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free));
+ GRefPtr<GHashTable> hash = adoptGRef(g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free));
for (unsigned i = 0; i < paramNames.size(); ++i) {
g_hash_table_insert(hash.get(),
g_strdup(paramNames[i].utf8().data()),
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list