Changeset 162306 in webkit


Ignore:
Timestamp:
Jan 20, 2014 12:01:16 AM (10 years ago)
Author:
Carlos Garcia Campos
Message:

[GLIB] GVariant floating references are not correctly handled by GRefPtr
https://bugs.webkit.org/show_bug.cgi?id=127246

Reviewed by Martin Robinson.

Source/WebCore:

Do not adopt GVariant floating references, they will be converted
to a full reference by GRefPtr.

  • platform/gtk/PasteboardHelper.cpp:

(WebCore::PasteboardHelper::fillSelectionData):
(WebCore::PasteboardHelper::fillDataObjectFromDropData):

Source/WTF:

GRefPtr should always use g_variant_ref_sink to deal with GVariant
floating references. In case of full references,
g_variant_ref_sink calls g_variant_ref, so it's safe to use it always.

  • wtf/gobject/GRefPtr.cpp:

(WTF::refGPtr): Use g_variant_ref_sink().

Location:
trunk/Source
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WTF/ChangeLog

    r162272 r162306  
     12014-01-19  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [GLIB] GVariant floating references are not correctly handled by GRefPtr
     4        https://bugs.webkit.org/show_bug.cgi?id=127246
     5
     6        Reviewed by Martin Robinson.
     7
     8        GRefPtr should always use g_variant_ref_sink to deal with GVariant
     9        floating references. In case of full references,
     10        g_variant_ref_sink calls g_variant_ref, so it's safe to use it always.
     11
     12        * wtf/gobject/GRefPtr.cpp:
     13        (WTF::refGPtr): Use g_variant_ref_sink().
     14
    1152014-01-18  Anders Carlsson  <andersca@apple.com>
    216
  • trunk/Source/WTF/wtf/gobject/GRefPtr.cpp

    r157918 r162306  
    9999{
    100100    if (ptr)
    101         g_variant_ref(ptr);
     101        g_variant_ref_sink(ptr);
    102102    return ptr;
    103103}
  • trunk/Source/WebCore/ChangeLog

    r162305 r162306  
     12014-01-19  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [GLIB] GVariant floating references are not correctly handled by GRefPtr
     4        https://bugs.webkit.org/show_bug.cgi?id=127246
     5
     6        Reviewed by Martin Robinson.
     7
     8        Do not adopt GVariant floating references, they will be converted
     9        to a full reference by GRefPtr.
     10
     11        * platform/gtk/PasteboardHelper.cpp:
     12        (WebCore::PasteboardHelper::fillSelectionData):
     13        (WebCore::PasteboardHelper::fillDataObjectFromDropData):
     14
    1152014-01-19  Jinwoo Song  <jinwoo7.song@samsung.com>
    216
  • trunk/Source/WebCore/platform/gtk/PasteboardHelper.cpp

    r159837 r162306  
    198198        }
    199199
    200         GRefPtr<GVariant> variant = adoptGRef(g_variant_builder_end(&builder));
     200        GRefPtr<GVariant> variant = g_variant_builder_end(&builder);
    201201        GOwnPtr<gchar> serializedVariant(g_variant_print(variant.get(), TRUE));
    202202        gtk_selection_data_set(selectionData, unknownAtom, 1, reinterpret_cast<const guchar*>(serializedVariant.get()), strlen(serializedVariant.get()));
     
    257257            dataObject->setText(pieces[1]);
    258258    } else if (target == unknownAtom) {
    259         GRefPtr<GVariant> variant = adoptGRef(g_variant_new_parsed(reinterpret_cast<const char*>(gtk_selection_data_get_data(data))));
     259        GRefPtr<GVariant> variant = g_variant_new_parsed(reinterpret_cast<const char*>(gtk_selection_data_get_data(data)));
    260260
    261261        GOwnPtr<gchar> key;
Note: See TracChangeset for help on using the changeset viewer.