Modified: trunk/Source/_javascript_Core/ChangeLog (106116 => 106117)
--- trunk/Source/_javascript_Core/ChangeLog 2012-01-27 14:20:50 UTC (rev 106116)
+++ trunk/Source/_javascript_Core/ChangeLog 2012-01-27 14:27:24 UTC (rev 106117)
@@ -1,3 +1,15 @@
+2012-01-27 Carlos Garcia Campos <[email protected]>
+
+ [GTK] Add a GKeyFile especialization to GOwnPtr
+ https://bugs.webkit.org/show_bug.cgi?id=77191
+
+ Reviewed by Martin Robinson.
+
+ * wtf/gobject/GOwnPtr.cpp:
+ (WTF::GKeyFile): Implement freeOwnedGPtr for GKeyFile.
+ * wtf/gobject/GOwnPtr.h: Add GKeyFile template.
+ * wtf/gobject/GTypedefs.h: Add forward declaration for GKeyFile.
+
2012-01-25 Yury Semikhatsky <[email protected]>
Web Inspector: should be possible to open function declaration from script popover
Modified: trunk/Source/_javascript_Core/wtf/gobject/GOwnPtr.cpp (106116 => 106117)
--- trunk/Source/_javascript_Core/wtf/gobject/GOwnPtr.cpp 2012-01-27 14:20:50 UTC (rev 106116)
+++ trunk/Source/_javascript_Core/wtf/gobject/GOwnPtr.cpp 2012-01-27 14:27:24 UTC (rev 106117)
@@ -55,6 +55,12 @@
g_timer_destroy(ptr);
}
+template <> void freeOwnedGPtr<GKeyFile>(GKeyFile* ptr)
+{
+ if (ptr)
+ g_key_file_free(ptr);
+}
+
} // namespace WTF
#endif // ENABLE(GLIB_SUPPORT)
Modified: trunk/Source/_javascript_Core/wtf/gobject/GOwnPtr.h (106116 => 106117)
--- trunk/Source/_javascript_Core/wtf/gobject/GOwnPtr.h 2012-01-27 14:20:50 UTC (rev 106116)
+++ trunk/Source/_javascript_Core/wtf/gobject/GOwnPtr.h 2012-01-27 14:27:24 UTC (rev 106117)
@@ -38,6 +38,7 @@
template<> void freeOwnedGPtr<GPatternSpec>(GPatternSpec*);
template<> void freeOwnedGPtr<GDir>(GDir*);
template<> void freeOwnedGPtr<GTimer>(GTimer*);
+template<> void freeOwnedGPtr<GKeyFile>(GKeyFile*);
template <typename T> class GOwnPtr {
WTF_MAKE_NONCOPYABLE(GOwnPtr);
Modified: trunk/Source/_javascript_Core/wtf/gobject/GTypedefs.h (106116 => 106117)
--- trunk/Source/_javascript_Core/wtf/gobject/GTypedefs.h 2012-01-27 14:20:50 UTC (rev 106116)
+++ trunk/Source/_javascript_Core/wtf/gobject/GTypedefs.h 2012-01-27 14:27:24 UTC (rev 106117)
@@ -59,6 +59,7 @@
typedef struct _GVariant GVariant;
typedef union _GdkEvent GdkEvent;
typedef struct _GTimer GTimer;
+typedef struct _GKeyFile GKeyFile;
#if USE(CAIRO)
typedef struct _cairo_surface cairo_surface_t;
Modified: trunk/Source/WebKit2/ChangeLog (106116 => 106117)
--- trunk/Source/WebKit2/ChangeLog 2012-01-27 14:20:50 UTC (rev 106116)
+++ trunk/Source/WebKit2/ChangeLog 2012-01-27 14:27:24 UTC (rev 106117)
@@ -1,3 +1,15 @@
+2012-01-27 Carlos Garcia Campos <[email protected]>
+
+ [GTK] Add a GKeyFile especialization to GOwnPtr
+ https://bugs.webkit.org/show_bug.cgi?id=77191
+
+ Reviewed by Martin Robinson.
+
+ * Shared/gtk/ArgumentCodersGtk.cpp:
+ (CoreIPC::decodeGKeyFile): Use GOwnPtr for GKeyFile.
+ (CoreIPC::encode): Ditto.
+ (CoreIPC::decode): Ditto.
+
2012-01-27 Kenneth Rohde Christiansen <[email protected]>
[Qt] Fade out tap highlighting when starting to pan
Modified: trunk/Source/WebKit2/Shared/gtk/ArgumentCodersGtk.cpp (106116 => 106117)
--- trunk/Source/WebKit2/Shared/gtk/ArgumentCodersGtk.cpp 2012-01-27 14:20:50 UTC (rev 106116)
+++ trunk/Source/WebKit2/Shared/gtk/ArgumentCodersGtk.cpp 2012-01-27 14:27:24 UTC (rev 106117)
@@ -226,21 +226,18 @@
encoder->encode(dataReference);
}
-static bool decodeGKeyFile(ArgumentDecoder* decoder, GKeyFile** keyFile)
+static bool decodeGKeyFile(ArgumentDecoder* decoder, GOwnPtr<GKeyFile>& keyFile)
{
DataReference dataReference;
if (!decoder->decode(dataReference))
return false;
- if (!dataReference.size()) {
- *keyFile = 0;
+ if (!dataReference.size())
return true;
- }
- *keyFile = g_key_file_new();
- if (!g_key_file_load_from_data(*keyFile, reinterpret_cast<const gchar*>(dataReference.data()), dataReference.size(), G_KEY_FILE_NONE, 0)) {
- g_key_file_free(*keyFile);
- *keyFile = 0;
+ keyFile.set(g_key_file_new());
+ if (!g_key_file_load_from_data(keyFile.get(), reinterpret_cast<const gchar*>(dataReference.data()), dataReference.size(), G_KEY_FILE_NONE, 0)) {
+ keyFile.clear();
return false;
}
@@ -249,50 +246,46 @@
void encode(ArgumentEncoder* encoder, GtkPrintSettings* printSettings)
{
- GKeyFile* keyFile = g_key_file_new();
- gtk_print_settings_to_key_file(printSettings, keyFile, "Print Settings");
- encodeGKeyFile(encoder, keyFile);
- g_key_file_free(keyFile);
+ GOwnPtr<GKeyFile> keyFile(g_key_file_new());
+ gtk_print_settings_to_key_file(printSettings, keyFile.get(), "Print Settings");
+ encodeGKeyFile(encoder, keyFile.get());
}
bool decode(ArgumentDecoder* decoder, GRefPtr<GtkPrintSettings>& printSettings)
{
- GKeyFile* keyFile;
- if (!decodeGKeyFile(decoder, &keyFile))
+ GOwnPtr<GKeyFile> keyFile;
+ if (!decodeGKeyFile(decoder, keyFile))
return false;
printSettings = adoptGRef(gtk_print_settings_new());
if (!keyFile)
return true;
- if (!gtk_print_settings_load_key_file(printSettings.get(), keyFile, "Print Settings", 0))
+ if (!gtk_print_settings_load_key_file(printSettings.get(), keyFile.get(), "Print Settings", 0))
printSettings = 0;
- g_key_file_free(keyFile);
return printSettings;
}
void encode(ArgumentEncoder* encoder, GtkPageSetup* pageSetup)
{
- GKeyFile* keyFile = g_key_file_new();
- gtk_page_setup_to_key_file(pageSetup, keyFile, "Page Setup");
- encodeGKeyFile(encoder, keyFile);
- g_key_file_free(keyFile);
+ GOwnPtr<GKeyFile> keyFile(g_key_file_new());
+ gtk_page_setup_to_key_file(pageSetup, keyFile.get(), "Page Setup");
+ encodeGKeyFile(encoder, keyFile.get());
}
bool decode(ArgumentDecoder* decoder, GRefPtr<GtkPageSetup>& pageSetup)
{
- GKeyFile* keyFile;
- if (!decodeGKeyFile(decoder, &keyFile))
+ GOwnPtr<GKeyFile> keyFile;
+ if (!decodeGKeyFile(decoder, keyFile))
return false;
pageSetup = adoptGRef(gtk_page_setup_new());
if (!keyFile)
return true;
- if (!gtk_page_setup_load_key_file(pageSetup.get(), keyFile, "Page Setup", 0))
+ if (!gtk_page_setup_load_key_file(pageSetup.get(), keyFile.get(), "Page Setup", 0))
pageSetup = 0;
- g_key_file_free(keyFile);
return pageSetup;
}