Changeset 136498 in webkit


Ignore:
Timestamp:
Dec 4, 2012 3:10:35 AM (11 years ago)
Author:
Carlos Garcia Campos
Message:

[GTK] Use a private struct and placement new syntax in GObject DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=101074

Reviewed by Xan Lopez.

It allows to use RefPtr for the wrapped object and it simplifies
the code.

  • bindings/scripts/CodeGeneratorGObject.pm:

(GenerateProperties):
(GenerateHeader):
(GenerateCFile):
(GenerateEventTargetIface):
(WriteData):

  • bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:

(_WebKitDOMFloat64ArrayPrivate):
(WebKit::core):
(WebKit::wrapFloat64Array):
(webkit_dom_float64array_finalize):
(webkit_dom_float64array_constructor):
(webkit_dom_float64array_class_init):
(webkit_dom_float64array_init):

  • bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:

(_WebKitDOMFloat64Array):

  • bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:

(_WebKitDOMTestActiveDOMObjectPrivate):
(WebKit::core):
(WebKit::wrapTestActiveDOMObject):
(webkit_dom_test_active_dom_object_finalize):
(webkit_dom_test_active_dom_object_constructor):
(webkit_dom_test_active_dom_object_class_init):
(webkit_dom_test_active_dom_object_init):

  • bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:

(_WebKitDOMTestActiveDOMObject):

  • bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:

(_WebKitDOMTestCallbackPrivate):
(WebKit::core):
(WebKit::wrapTestCallback):
(webkit_dom_test_callback_finalize):
(webkit_dom_test_callback_constructor):
(webkit_dom_test_callback_class_init):
(webkit_dom_test_callback_init):

  • bindings/scripts/test/GObject/WebKitDOMTestCallback.h:

(_WebKitDOMTestCallback):

  • bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:

(_WebKitDOMTestCustomNamedGetterPrivate):
(WebKit::core):
(WebKit::wrapTestCustomNamedGetter):
(webkit_dom_test_custom_named_getter_finalize):
(webkit_dom_test_custom_named_getter_constructor):
(webkit_dom_test_custom_named_getter_class_init):
(webkit_dom_test_custom_named_getter_init):

  • bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:

(_WebKitDOMTestCustomNamedGetter):

  • bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:

(_WebKitDOMTestEventConstructorPrivate):
(WebKit::core):
(WebKit::wrapTestEventConstructor):
(webkit_dom_test_event_constructor_finalize):
(webkit_dom_test_event_constructor_constructor):
(webkit_dom_test_event_constructor_class_init):
(webkit_dom_test_event_constructor_init):

  • bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:

(_WebKitDOMTestEventConstructor):

  • bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:

(_WebKitDOMTestEventTargetPrivate):
(WebKit::core):
(WebKit::wrapTestEventTarget):
(webkit_dom_test_event_target_dispatch_event):
(webkit_dom_test_event_target_add_event_listener):
(webkit_dom_test_event_target_remove_event_listener):
(webkit_dom_test_event_target_finalize):
(webkit_dom_test_event_target_constructor):
(webkit_dom_test_event_target_class_init):
(webkit_dom_test_event_target_init):

  • bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:

(_WebKitDOMTestEventTarget):

  • bindings/scripts/test/GObject/WebKitDOMTestException.cpp:

(_WebKitDOMTestExceptionPrivate):
(WebKit::core):
(WebKit::wrapTestException):
(webkit_dom_test_exception_finalize):
(webkit_dom_test_exception_constructor):
(webkit_dom_test_exception_class_init):
(webkit_dom_test_exception_init):

  • bindings/scripts/test/GObject/WebKitDOMTestException.h:

(_WebKitDOMTestException):

  • bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:

(_WebKitDOMTestInterfacePrivate):
(WebKit::core):
(WebKit::wrapTestInterface):
(webkit_dom_test_interface_finalize):
(webkit_dom_test_interface_constructor):
(webkit_dom_test_interface_class_init):
(webkit_dom_test_interface_init):

  • bindings/scripts/test/GObject/WebKitDOMTestInterface.h:

(_WebKitDOMTestInterface):

  • bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:

(_WebKitDOMTestMediaQueryListListenerPrivate):
(WebKit::core):
(WebKit::wrapTestMediaQueryListListener):
(webkit_dom_test_media_query_list_listener_finalize):
(webkit_dom_test_media_query_list_listener_constructor):
(webkit_dom_test_media_query_list_listener_class_init):
(webkit_dom_test_media_query_list_listener_init):

  • bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:

(_WebKitDOMTestMediaQueryListListener):

  • bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:

(_WebKitDOMTestNamedConstructorPrivate):
(WebKit::core):
(WebKit::wrapTestNamedConstructor):
(webkit_dom_test_named_constructor_finalize):
(webkit_dom_test_named_constructor_constructor):
(webkit_dom_test_named_constructor_class_init):
(webkit_dom_test_named_constructor_init):

  • bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:

(_WebKitDOMTestNamedConstructor):

  • bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:

(_WebKitDOMTestNodePrivate):
(WebKit::core):
(WebKit::wrapTestNode):
(webkit_dom_test_node_dispatch_event):
(webkit_dom_test_node_add_event_listener):
(webkit_dom_test_node_remove_event_listener):
(webkit_dom_test_node_finalize):
(webkit_dom_test_node_constructor):
(webkit_dom_test_node_class_init):
(webkit_dom_test_node_init):

  • bindings/scripts/test/GObject/WebKitDOMTestNode.h:

(_WebKitDOMTestNode):

  • bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:

(_WebKitDOMTestObjPrivate):
(WebKit::core):
(WebKit::wrapTestObj):
(webkit_dom_test_obj_finalize):
(webkit_dom_test_obj_constructor):
(webkit_dom_test_obj_class_init):
(webkit_dom_test_obj_init):

  • bindings/scripts/test/GObject/WebKitDOMTestObj.h:

(_WebKitDOMTestObj):

  • bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:

(_WebKitDOMTestSerializedScriptValueInterfacePrivate):
(WebKit::core):
(WebKit::wrapTestSerializedScriptValueInterface):
(webkit_dom_test_serialized_script_value_interface_finalize):
(webkit_dom_test_serialized_script_value_interface_constructor):
(webkit_dom_test_serialized_script_value_interface_class_init):
(webkit_dom_test_serialized_script_value_interface_init):

  • bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:

(_WebKitDOMTestSerializedScriptValueInterface):

Location:
trunk/Source/WebCore
Files:
30 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r136497 r136498  
     12012-12-04  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [GTK] Use a private struct and placement new syntax in GObject DOM bindings
     4        https://bugs.webkit.org/show_bug.cgi?id=101074
     5
     6        Reviewed by Xan Lopez.
     7
     8        It allows to use RefPtr for the wrapped object and it simplifies
     9        the code.
     10
     11        * bindings/scripts/CodeGeneratorGObject.pm:
     12        (GenerateProperties):
     13        (GenerateHeader):
     14        (GenerateCFile):
     15        (GenerateEventTargetIface):
     16        (WriteData):
     17        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
     18        (_WebKitDOMFloat64ArrayPrivate):
     19        (WebKit::core):
     20        (WebKit::wrapFloat64Array):
     21        (webkit_dom_float64array_finalize):
     22        (webkit_dom_float64array_constructor):
     23        (webkit_dom_float64array_class_init):
     24        (webkit_dom_float64array_init):
     25        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
     26        (_WebKitDOMFloat64Array):
     27        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
     28        (_WebKitDOMTestActiveDOMObjectPrivate):
     29        (WebKit::core):
     30        (WebKit::wrapTestActiveDOMObject):
     31        (webkit_dom_test_active_dom_object_finalize):
     32        (webkit_dom_test_active_dom_object_constructor):
     33        (webkit_dom_test_active_dom_object_class_init):
     34        (webkit_dom_test_active_dom_object_init):
     35        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
     36        (_WebKitDOMTestActiveDOMObject):
     37        * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
     38        (_WebKitDOMTestCallbackPrivate):
     39        (WebKit::core):
     40        (WebKit::wrapTestCallback):
     41        (webkit_dom_test_callback_finalize):
     42        (webkit_dom_test_callback_constructor):
     43        (webkit_dom_test_callback_class_init):
     44        (webkit_dom_test_callback_init):
     45        * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
     46        (_WebKitDOMTestCallback):
     47        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
     48        (_WebKitDOMTestCustomNamedGetterPrivate):
     49        (WebKit::core):
     50        (WebKit::wrapTestCustomNamedGetter):
     51        (webkit_dom_test_custom_named_getter_finalize):
     52        (webkit_dom_test_custom_named_getter_constructor):
     53        (webkit_dom_test_custom_named_getter_class_init):
     54        (webkit_dom_test_custom_named_getter_init):
     55        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
     56        (_WebKitDOMTestCustomNamedGetter):
     57        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
     58        (_WebKitDOMTestEventConstructorPrivate):
     59        (WebKit::core):
     60        (WebKit::wrapTestEventConstructor):
     61        (webkit_dom_test_event_constructor_finalize):
     62        (webkit_dom_test_event_constructor_constructor):
     63        (webkit_dom_test_event_constructor_class_init):
     64        (webkit_dom_test_event_constructor_init):
     65        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
     66        (_WebKitDOMTestEventConstructor):
     67        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
     68        (_WebKitDOMTestEventTargetPrivate):
     69        (WebKit::core):
     70        (WebKit::wrapTestEventTarget):
     71        (webkit_dom_test_event_target_dispatch_event):
     72        (webkit_dom_test_event_target_add_event_listener):
     73        (webkit_dom_test_event_target_remove_event_listener):
     74        (webkit_dom_test_event_target_finalize):
     75        (webkit_dom_test_event_target_constructor):
     76        (webkit_dom_test_event_target_class_init):
     77        (webkit_dom_test_event_target_init):
     78        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
     79        (_WebKitDOMTestEventTarget):
     80        * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
     81        (_WebKitDOMTestExceptionPrivate):
     82        (WebKit::core):
     83        (WebKit::wrapTestException):
     84        (webkit_dom_test_exception_finalize):
     85        (webkit_dom_test_exception_constructor):
     86        (webkit_dom_test_exception_class_init):
     87        (webkit_dom_test_exception_init):
     88        * bindings/scripts/test/GObject/WebKitDOMTestException.h:
     89        (_WebKitDOMTestException):
     90        * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
     91        (_WebKitDOMTestInterfacePrivate):
     92        (WebKit::core):
     93        (WebKit::wrapTestInterface):
     94        (webkit_dom_test_interface_finalize):
     95        (webkit_dom_test_interface_constructor):
     96        (webkit_dom_test_interface_class_init):
     97        (webkit_dom_test_interface_init):
     98        * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
     99        (_WebKitDOMTestInterface):
     100        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
     101        (_WebKitDOMTestMediaQueryListListenerPrivate):
     102        (WebKit::core):
     103        (WebKit::wrapTestMediaQueryListListener):
     104        (webkit_dom_test_media_query_list_listener_finalize):
     105        (webkit_dom_test_media_query_list_listener_constructor):
     106        (webkit_dom_test_media_query_list_listener_class_init):
     107        (webkit_dom_test_media_query_list_listener_init):
     108        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
     109        (_WebKitDOMTestMediaQueryListListener):
     110        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
     111        (_WebKitDOMTestNamedConstructorPrivate):
     112        (WebKit::core):
     113        (WebKit::wrapTestNamedConstructor):
     114        (webkit_dom_test_named_constructor_finalize):
     115        (webkit_dom_test_named_constructor_constructor):
     116        (webkit_dom_test_named_constructor_class_init):
     117        (webkit_dom_test_named_constructor_init):
     118        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:
     119        (_WebKitDOMTestNamedConstructor):
     120        * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
     121        (_WebKitDOMTestNodePrivate):
     122        (WebKit::core):
     123        (WebKit::wrapTestNode):
     124        (webkit_dom_test_node_dispatch_event):
     125        (webkit_dom_test_node_add_event_listener):
     126        (webkit_dom_test_node_remove_event_listener):
     127        (webkit_dom_test_node_finalize):
     128        (webkit_dom_test_node_constructor):
     129        (webkit_dom_test_node_class_init):
     130        (webkit_dom_test_node_init):
     131        * bindings/scripts/test/GObject/WebKitDOMTestNode.h:
     132        (_WebKitDOMTestNode):
     133        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
     134        (_WebKitDOMTestObjPrivate):
     135        (WebKit::core):
     136        (WebKit::wrapTestObj):
     137        (webkit_dom_test_obj_finalize):
     138        (webkit_dom_test_obj_constructor):
     139        (webkit_dom_test_obj_class_init):
     140        (webkit_dom_test_obj_init):
     141        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
     142        (_WebKitDOMTestObj):
     143        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
     144        (_WebKitDOMTestSerializedScriptValueInterfacePrivate):
     145        (WebKit::core):
     146        (WebKit::wrapTestSerializedScriptValueInterface):
     147        (webkit_dom_test_serialized_script_value_interface_finalize):
     148        (webkit_dom_test_serialized_script_value_interface_constructor):
     149        (webkit_dom_test_serialized_script_value_interface_class_init):
     150        (webkit_dom_test_serialized_script_value_interface_init):
     151        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
     152        (_WebKitDOMTestSerializedScriptValueInterface):
     153
    11542012-12-04  David Grogan  <dgrogan@chromium.org>
    2155
  • trunk/Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm

    r136491 r136498  
    642642static void ${lowerCaseIfaceName}_finalize(GObject* object)
    643643{
     644    ${className}Private* priv = WEBKIT_DOM_${clsCaps}(object)->priv;
    644645$conditionGuardStart
    645     WebKitDOMObject* domObject = WEBKIT_DOM_OBJECT(object);
    646    
    647     if (domObject->coreObject) {
    648         WebCore::${interfaceName}* coreObject = static_cast<WebCore::${interfaceName}*>(domObject->coreObject);
    649 
    650         WebKit::DOMObjectCache::forget(coreObject);
    651         coreObject->deref();
    652 
    653         domObject->coreObject = 0;
    654     }
     646    WebKit::DOMObjectCache::forget(priv->coreObject.get());
    655647$conditionGuardEnd
    656 
     648    priv->~${className}Private();
    657649    G_OBJECT_CLASS(${lowerCaseIfaceName}_parent_class)->finalize(object);
    658650}
     
    688680
    689681    $implContent = << "EOF";
     682static GObject* ${lowerCaseIfaceName}_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties)
     683{
     684    GObject* object = G_OBJECT_CLASS(${lowerCaseIfaceName}_parent_class)->constructor(type, constructPropertiesCount, constructProperties);
     685$conditionGuardStart
     686    ${className}Private* priv = WEBKIT_DOM_${clsCaps}(object)->priv;
     687    priv->coreObject = static_cast<WebCore::${interfaceName}*>(WEBKIT_DOM_OBJECT(object)->coreObject);
     688$conditionGuardEnd
     689    return object;
     690}
     691
    690692static void ${lowerCaseIfaceName}_class_init(${className}Class* requestClass)
    691693{
    692694    GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass);
     695    gobjectClass->constructor = ${lowerCaseIfaceName}_constructor;
    693696    gobjectClass->finalize = ${lowerCaseIfaceName}_finalize;
     697    g_type_class_add_private(gobjectClass, sizeof(${className}Private));
    694698EOF
    695699    push(@cBodyProperties, $implContent);
     
    715719}
    716720
    717 static void ${lowerCaseIfaceName}_init(${className}* request)
    718 {
     721static void ${lowerCaseIfaceName}_init(${className}* self)
     722{
     723    ${className}Private* priv = G_TYPE_INSTANCE_GET_PRIVATE(self, WEBKIT_TYPE_DOM_${clsCaps}, ${className}Private);
     724    self->priv = priv;
     725    new (priv) ${className}Private();
    719726}
    720727
     
    760767#define WEBKIT_DOM_${clsCaps}_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj),  WEBKIT_TYPE_DOM_${clsCaps}, ${className}Class))
    761768
     769typedef struct _${className}Private ${className}Private;
     770
    762771struct _${className} {
    763772    ${parentClassName} parent_instance;
     773
     774    ${className}Private *priv;
    764775};
    765776
     
    11951206    my $lowerCaseIfaceName = "webkit_dom_" . FixUpDecamelizedName(decamelize($interfaceName));
    11961207
     1208    my $conditionalString = $codeGenerator->GenerateConditionalString($interface);
     1209    push(@cStructPriv, "struct _${className}Private {\n");
     1210    push(@cStructPriv, "#if ${conditionalString}\n") if $conditionalString;
     1211    push(@cStructPriv, "    RefPtr<WebCore::${interfaceName}> coreObject;\n");
     1212    push(@cStructPriv, "#endif // ${conditionalString}\n") if $conditionalString;
     1213    push(@cStructPriv, "};\n\n");
     1214
    11971215    $implContent = << "EOF";
    11981216${defineTypeMacro}(${className}, ${lowerCaseIfaceName}, ${parentGObjType}${defineTypeInterfaceImplementation}
     
    12051223{
    12061224    g_return_val_if_fail(request, 0);
    1207 
    1208     WebCore::${interfaceName}* coreObject = static_cast<WebCore::${interfaceName}*>(WEBKIT_DOM_OBJECT(request)->coreObject);
    1209     g_return_val_if_fail(coreObject, 0);
    1210 
    1211     return coreObject;
     1225    return request->priv->coreObject.get();
    12121226}
    12131227
     
    12221236{
    12231237    g_return_val_if_fail(coreObject, 0);
    1224 
    1225     // We call ref() rather than using a C++ smart pointer because we can't store a C++ object
    1226     // in a C-allocated GObject structure. See the finalize() code for the matching deref().
    1227     coreObject->ref();
    1228 
    12291238    return WEBKIT_DOM_${clsCaps}(g_object_new(WEBKIT_TYPE_DOM_${clsCaps}, "core-object", coreObject, NULL));
    12301239}
     
    12571266    my $interfaceName = $interface->name;
    12581267    my $decamelize = FixUpDecamelizedName(decamelize($interfaceName));
     1268    my $clsCaps = uc($decamelize);
    12591269
    12601270    $implIncludes{"GObjectEventListener.h"} = 1;
     
    12651275static void webkit_dom_${decamelize}_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error)
    12661276{
    1267     WebCore::Event* coreEvent = WebKit::core(event);
    1268     WebCore::${interfaceName}* coreTarget = static_cast<WebCore::${interfaceName}*>(WEBKIT_DOM_OBJECT(target)->coreObject);
    1269 
    12701277    WebCore::ExceptionCode ec = 0;
    1271     coreTarget->dispatchEvent(coreEvent, ec);
     1278    WEBKIT_DOM_${clsCaps}(target)->priv->coreObject->dispatchEvent(WebKit::core(event), ec);
    12721279    if (ec) {
    12731280        WebCore::ExceptionCodeDescription description(ec);
     
    12781285static gboolean webkit_dom_${decamelize}_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GCallback handler, gboolean bubble, gpointer userData)
    12791286{
    1280     WebCore::${interfaceName}* coreTarget = static_cast<WebCore::${interfaceName}*>(WEBKIT_DOM_OBJECT(target)->coreObject);
     1287    WebCore::${interfaceName}* coreTarget = WEBKIT_DOM_${clsCaps}(target)->priv->coreObject.get();
    12811288    return WebCore::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, bubble, userData);
    12821289}
     
    12841291static gboolean webkit_dom_${decamelize}_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GCallback handler, gboolean bubble)
    12851292{
    1286     WebCore::${interfaceName}* coreTarget = static_cast<WebCore::${interfaceName}*>(WEBKIT_DOM_OBJECT(target)->coreObject);
     1293    WebCore::${interfaceName}* coreTarget = WEBKIT_DOM_${clsCaps}(target)->priv->coreObject.get();
    12871294    return WebCore::GObjectEventListener::removeEventListener(G_OBJECT(target), coreTarget, eventName, handler, bubble);
    12881295}
     
    14331440    print IMPL "#include <wtf/GetPtr.h>\n";
    14341441    print IMPL "#include <wtf/RefPtr.h>\n\n";
     1442    print IMPL @cStructPriv;
    14351443    print IMPL "#if ${conditionalString}\n\n" if $conditionalString;
    14361444
     
    14541462    @cBodyPriv = ();
    14551463    @cBodyProperties = ();
     1464    @cStructPriv = ();
    14561465}
    14571466
  • trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp

    r136491 r136498  
    3434#include <wtf/RefPtr.h>
    3535
     36struct _WebKitDOMFloat64ArrayPrivate {
     37    RefPtr<WebCore::Float64Array> coreObject;
     38};
     39
    3640namespace WebKit {
    3741
     
    4953{
    5054    g_return_val_if_fail(request, 0);
    51 
    52     WebCore::Float64Array* coreObject = static_cast<WebCore::Float64Array*>(WEBKIT_DOM_OBJECT(request)->coreObject);
    53     g_return_val_if_fail(coreObject, 0);
    54 
    55     return coreObject;
     55    return request->priv->coreObject.get();
    5656}
    5757
     
    5959{
    6060    g_return_val_if_fail(coreObject, 0);
    61 
    62     // We call ref() rather than using a C++ smart pointer because we can't store a C++ object
    63     // in a C-allocated GObject structure. See the finalize() code for the matching deref().
    64     coreObject->ref();
    65 
    6661    return WEBKIT_DOM_FLOAT64ARRAY(g_object_new(WEBKIT_TYPE_DOM_FLOAT64ARRAY, "core-object", coreObject, NULL));
    6762}
     
    7368static void webkit_dom_float64array_finalize(GObject* object)
    7469{
     70    WebKitDOMFloat64ArrayPrivate* priv = WEBKIT_DOM_FLOAT64ARRAY(object)->priv;
    7571
    76     WebKitDOMObject* domObject = WEBKIT_DOM_OBJECT(object);
    77    
    78     if (domObject->coreObject) {
    79         WebCore::Float64Array* coreObject = static_cast<WebCore::Float64Array*>(domObject->coreObject);
     72    WebKit::DOMObjectCache::forget(priv->coreObject.get());
    8073
    81         WebKit::DOMObjectCache::forget(coreObject);
    82         coreObject->deref();
     74    priv->~WebKitDOMFloat64ArrayPrivate();
     75    G_OBJECT_CLASS(webkit_dom_float64array_parent_class)->finalize(object);
     76}
    8377
    84         domObject->coreObject = 0;
    85     }
     78static GObject* webkit_dom_float64array_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties)
     79{
     80    GObject* object = G_OBJECT_CLASS(webkit_dom_float64array_parent_class)->constructor(type, constructPropertiesCount, constructProperties);
    8681
     82    WebKitDOMFloat64ArrayPrivate* priv = WEBKIT_DOM_FLOAT64ARRAY(object)->priv;
     83    priv->coreObject = static_cast<WebCore::Float64Array*>(WEBKIT_DOM_OBJECT(object)->coreObject);
    8784
    88     G_OBJECT_CLASS(webkit_dom_float64array_parent_class)->finalize(object);
     85    return object;
    8986}
    9087
     
    9289{
    9390    GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass);
     91    gobjectClass->constructor = webkit_dom_float64array_constructor;
    9492    gobjectClass->finalize = webkit_dom_float64array_finalize;
     93    g_type_class_add_private(gobjectClass, sizeof(WebKitDOMFloat64ArrayPrivate));
    9594}
    9695
    97 static void webkit_dom_float64array_init(WebKitDOMFloat64Array* request)
     96static void webkit_dom_float64array_init(WebKitDOMFloat64Array* self)
    9897{
     98    WebKitDOMFloat64ArrayPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(self, WEBKIT_TYPE_DOM_FLOAT64ARRAY, WebKitDOMFloat64ArrayPrivate);
     99    self->priv = priv;
     100    new (priv) WebKitDOMFloat64ArrayPrivate();
    99101}
    100102
  • trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMFloat64Array.h

    r133893 r136498  
    3636#define WEBKIT_DOM_FLOAT64ARRAY_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj),  WEBKIT_TYPE_DOM_FLOAT64ARRAY, WebKitDOMFloat64ArrayClass))
    3737
     38typedef struct _WebKitDOMFloat64ArrayPrivate WebKitDOMFloat64ArrayPrivate;
     39
    3840struct _WebKitDOMFloat64Array {
    3941    WebKitDOMArrayBufferView parent_instance;
     42
     43    WebKitDOMFloat64ArrayPrivate *priv;
    4044};
    4145
  • trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp

    r136491 r136498  
    3333#include <wtf/RefPtr.h>
    3434
     35struct _WebKitDOMTestActiveDOMObjectPrivate {
     36    RefPtr<WebCore::TestActiveDOMObject> coreObject;
     37};
     38
    3539namespace WebKit {
    3640
     
    4852{
    4953    g_return_val_if_fail(request, 0);
    50 
    51     WebCore::TestActiveDOMObject* coreObject = static_cast<WebCore::TestActiveDOMObject*>(WEBKIT_DOM_OBJECT(request)->coreObject);
    52     g_return_val_if_fail(coreObject, 0);
    53 
    54     return coreObject;
     54    return request->priv->coreObject.get();
    5555}
    5656
     
    5858{
    5959    g_return_val_if_fail(coreObject, 0);
    60 
    61     // We call ref() rather than using a C++ smart pointer because we can't store a C++ object
    62     // in a C-allocated GObject structure. See the finalize() code for the matching deref().
    63     coreObject->ref();
    64 
    6560    return WEBKIT_DOM_TEST_ACTIVE_DOM_OBJECT(g_object_new(WEBKIT_TYPE_DOM_TEST_ACTIVE_DOM_OBJECT, "core-object", coreObject, NULL));
    6661}
     
    7772static void webkit_dom_test_active_dom_object_finalize(GObject* object)
    7873{
     74    WebKitDOMTestActiveDOMObjectPrivate* priv = WEBKIT_DOM_TEST_ACTIVE_DOM_OBJECT(object)->priv;
    7975
    80     WebKitDOMObject* domObject = WEBKIT_DOM_OBJECT(object);
    81    
    82     if (domObject->coreObject) {
    83         WebCore::TestActiveDOMObject* coreObject = static_cast<WebCore::TestActiveDOMObject*>(domObject->coreObject);
     76    WebKit::DOMObjectCache::forget(priv->coreObject.get());
    8477
    85         WebKit::DOMObjectCache::forget(coreObject);
    86         coreObject->deref();
    87 
    88         domObject->coreObject = 0;
    89     }
    90 
    91 
     78    priv->~WebKitDOMTestActiveDOMObjectPrivate();
    9279    G_OBJECT_CLASS(webkit_dom_test_active_dom_object_parent_class)->finalize(object);
    9380}
     
    11198}
    11299
     100static GObject* webkit_dom_test_active_dom_object_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties)
     101{
     102    GObject* object = G_OBJECT_CLASS(webkit_dom_test_active_dom_object_parent_class)->constructor(type, constructPropertiesCount, constructProperties);
     103
     104    WebKitDOMTestActiveDOMObjectPrivate* priv = WEBKIT_DOM_TEST_ACTIVE_DOM_OBJECT(object)->priv;
     105    priv->coreObject = static_cast<WebCore::TestActiveDOMObject*>(WEBKIT_DOM_OBJECT(object)->coreObject);
     106
     107    return object;
     108}
     109
    113110static void webkit_dom_test_active_dom_object_class_init(WebKitDOMTestActiveDOMObjectClass* requestClass)
    114111{
    115112    GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass);
     113    gobjectClass->constructor = webkit_dom_test_active_dom_object_constructor;
    116114    gobjectClass->finalize = webkit_dom_test_active_dom_object_finalize;
     115    g_type_class_add_private(gobjectClass, sizeof(WebKitDOMTestActiveDOMObjectPrivate));
    117116    gobjectClass->get_property = webkit_dom_test_active_dom_object_get_property;
    118117
     
    128127}
    129128
    130 static void webkit_dom_test_active_dom_object_init(WebKitDOMTestActiveDOMObject* request)
     129static void webkit_dom_test_active_dom_object_init(WebKitDOMTestActiveDOMObject* self)
    131130{
     131    WebKitDOMTestActiveDOMObjectPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(self, WEBKIT_TYPE_DOM_TEST_ACTIVE_DOM_OBJECT, WebKitDOMTestActiveDOMObjectPrivate);
     132    self->priv = priv;
     133    new (priv) WebKitDOMTestActiveDOMObjectPrivate();
    132134}
    133135
  • trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h

    r133893 r136498  
    3636#define WEBKIT_DOM_TEST_ACTIVE_DOM_OBJECT_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj),  WEBKIT_TYPE_DOM_TEST_ACTIVE_DOM_OBJECT, WebKitDOMTestActiveDOMObjectClass))
    3737
     38typedef struct _WebKitDOMTestActiveDOMObjectPrivate WebKitDOMTestActiveDOMObjectPrivate;
     39
    3840struct _WebKitDOMTestActiveDOMObject {
    3941    WebKitDOMObject parent_instance;
     42
     43    WebKitDOMTestActiveDOMObjectPrivate *priv;
    4044};
    4145
  • trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp

    r136491 r136498  
    3838#include <wtf/RefPtr.h>
    3939
     40struct _WebKitDOMTestCallbackPrivate {
     41#if ENABLE(SQL_DATABASE)
     42    RefPtr<WebCore::TestCallback> coreObject;
     43#endif // ENABLE(SQL_DATABASE)
     44};
     45
    4046#if ENABLE(SQL_DATABASE)
    4147
     
    5561{
    5662    g_return_val_if_fail(request, 0);
    57 
    58     WebCore::TestCallback* coreObject = static_cast<WebCore::TestCallback*>(WEBKIT_DOM_OBJECT(request)->coreObject);
     63    return request->priv->coreObject.get();
     64}
     65
     66WebKitDOMTestCallback* wrapTestCallback(WebCore::TestCallback* coreObject)
     67{
    5968    g_return_val_if_fail(coreObject, 0);
    60 
    61     return coreObject;
    62 }
    63 
    64 WebKitDOMTestCallback* wrapTestCallback(WebCore::TestCallback* coreObject)
    65 {
    66     g_return_val_if_fail(coreObject, 0);
    67 
    68     // We call ref() rather than using a C++ smart pointer because we can't store a C++ object
    69     // in a C-allocated GObject structure. See the finalize() code for the matching deref().
    70     coreObject->ref();
    71 
    7269    return WEBKIT_DOM_TEST_CALLBACK(g_object_new(WEBKIT_TYPE_DOM_TEST_CALLBACK, "core-object", coreObject, NULL));
    7370}
     
    8178static void webkit_dom_test_callback_finalize(GObject* object)
    8279{
    83 #if ENABLE(SQL_DATABASE)
    84     WebKitDOMObject* domObject = WEBKIT_DOM_OBJECT(object);
    85    
    86     if (domObject->coreObject) {
    87         WebCore::TestCallback* coreObject = static_cast<WebCore::TestCallback*>(domObject->coreObject);
    88 
    89         WebKit::DOMObjectCache::forget(coreObject);
    90         coreObject->deref();
    91 
    92         domObject->coreObject = 0;
    93     }
    94 #endif // ENABLE(SQL_DATABASE)
    95 
     80    WebKitDOMTestCallbackPrivate* priv = WEBKIT_DOM_TEST_CALLBACK(object)->priv;
     81#if ENABLE(SQL_DATABASE)
     82    WebKit::DOMObjectCache::forget(priv->coreObject.get());
     83#endif // ENABLE(SQL_DATABASE)
     84    priv->~WebKitDOMTestCallbackPrivate();
    9685    G_OBJECT_CLASS(webkit_dom_test_callback_parent_class)->finalize(object);
    9786}
    9887
     88static GObject* webkit_dom_test_callback_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties)
     89{
     90    GObject* object = G_OBJECT_CLASS(webkit_dom_test_callback_parent_class)->constructor(type, constructPropertiesCount, constructProperties);
     91#if ENABLE(SQL_DATABASE)
     92    WebKitDOMTestCallbackPrivate* priv = WEBKIT_DOM_TEST_CALLBACK(object)->priv;
     93    priv->coreObject = static_cast<WebCore::TestCallback*>(WEBKIT_DOM_OBJECT(object)->coreObject);
     94#endif // ENABLE(SQL_DATABASE)
     95    return object;
     96}
     97
    9998static void webkit_dom_test_callback_class_init(WebKitDOMTestCallbackClass* requestClass)
    10099{
    101100    GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass);
     101    gobjectClass->constructor = webkit_dom_test_callback_constructor;
    102102    gobjectClass->finalize = webkit_dom_test_callback_finalize;
    103 }
    104 
    105 static void webkit_dom_test_callback_init(WebKitDOMTestCallback* request)
    106 {
     103    g_type_class_add_private(gobjectClass, sizeof(WebKitDOMTestCallbackPrivate));
     104}
     105
     106static void webkit_dom_test_callback_init(WebKitDOMTestCallback* self)
     107{
     108    WebKitDOMTestCallbackPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(self, WEBKIT_TYPE_DOM_TEST_CALLBACK, WebKitDOMTestCallbackPrivate);
     109    self->priv = priv;
     110    new (priv) WebKitDOMTestCallbackPrivate();
    107111}
    108112
  • trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestCallback.h

    r133893 r136498  
    3636#define WEBKIT_DOM_TEST_CALLBACK_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj),  WEBKIT_TYPE_DOM_TEST_CALLBACK, WebKitDOMTestCallbackClass))
    3737
     38typedef struct _WebKitDOMTestCallbackPrivate WebKitDOMTestCallbackPrivate;
     39
    3840struct _WebKitDOMTestCallback {
    3941    WebKitDOMObject parent_instance;
     42
     43    WebKitDOMTestCallbackPrivate *priv;
    4044};
    4145
  • trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp

    r136491 r136498  
    3232#include <wtf/RefPtr.h>
    3333
     34struct _WebKitDOMTestCustomNamedGetterPrivate {
     35    RefPtr<WebCore::TestCustomNamedGetter> coreObject;
     36};
     37
    3438namespace WebKit {
    3539
     
    4751{
    4852    g_return_val_if_fail(request, 0);
    49 
    50     WebCore::TestCustomNamedGetter* coreObject = static_cast<WebCore::TestCustomNamedGetter*>(WEBKIT_DOM_OBJECT(request)->coreObject);
    51     g_return_val_if_fail(coreObject, 0);
    52 
    53     return coreObject;
     53    return request->priv->coreObject.get();
    5454}
    5555
     
    5757{
    5858    g_return_val_if_fail(coreObject, 0);
    59 
    60     // We call ref() rather than using a C++ smart pointer because we can't store a C++ object
    61     // in a C-allocated GObject structure. See the finalize() code for the matching deref().
    62     coreObject->ref();
    63 
    6459    return WEBKIT_DOM_TEST_CUSTOM_NAMED_GETTER(g_object_new(WEBKIT_TYPE_DOM_TEST_CUSTOM_NAMED_GETTER, "core-object", coreObject, NULL));
    6560}
     
    7166static void webkit_dom_test_custom_named_getter_finalize(GObject* object)
    7267{
     68    WebKitDOMTestCustomNamedGetterPrivate* priv = WEBKIT_DOM_TEST_CUSTOM_NAMED_GETTER(object)->priv;
    7369
    74     WebKitDOMObject* domObject = WEBKIT_DOM_OBJECT(object);
    75    
    76     if (domObject->coreObject) {
    77         WebCore::TestCustomNamedGetter* coreObject = static_cast<WebCore::TestCustomNamedGetter*>(domObject->coreObject);
     70    WebKit::DOMObjectCache::forget(priv->coreObject.get());
    7871
    79         WebKit::DOMObjectCache::forget(coreObject);
    80         coreObject->deref();
     72    priv->~WebKitDOMTestCustomNamedGetterPrivate();
     73    G_OBJECT_CLASS(webkit_dom_test_custom_named_getter_parent_class)->finalize(object);
     74}
    8175
    82         domObject->coreObject = 0;
    83     }
     76static GObject* webkit_dom_test_custom_named_getter_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties)
     77{
     78    GObject* object = G_OBJECT_CLASS(webkit_dom_test_custom_named_getter_parent_class)->constructor(type, constructPropertiesCount, constructProperties);
    8479
     80    WebKitDOMTestCustomNamedGetterPrivate* priv = WEBKIT_DOM_TEST_CUSTOM_NAMED_GETTER(object)->priv;
     81    priv->coreObject = static_cast<WebCore::TestCustomNamedGetter*>(WEBKIT_DOM_OBJECT(object)->coreObject);
    8582
    86     G_OBJECT_CLASS(webkit_dom_test_custom_named_getter_parent_class)->finalize(object);
     83    return object;
    8784}
    8885
     
    9087{
    9188    GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass);
     89    gobjectClass->constructor = webkit_dom_test_custom_named_getter_constructor;
    9290    gobjectClass->finalize = webkit_dom_test_custom_named_getter_finalize;
     91    g_type_class_add_private(gobjectClass, sizeof(WebKitDOMTestCustomNamedGetterPrivate));
    9392}
    9493
    95 static void webkit_dom_test_custom_named_getter_init(WebKitDOMTestCustomNamedGetter* request)
     94static void webkit_dom_test_custom_named_getter_init(WebKitDOMTestCustomNamedGetter* self)
    9695{
     96    WebKitDOMTestCustomNamedGetterPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(self, WEBKIT_TYPE_DOM_TEST_CUSTOM_NAMED_GETTER, WebKitDOMTestCustomNamedGetterPrivate);
     97    self->priv = priv;
     98    new (priv) WebKitDOMTestCustomNamedGetterPrivate();
    9799}
    98100
  • trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h

    r133893 r136498  
    3636#define WEBKIT_DOM_TEST_CUSTOM_NAMED_GETTER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj),  WEBKIT_TYPE_DOM_TEST_CUSTOM_NAMED_GETTER, WebKitDOMTestCustomNamedGetterClass))
    3737
     38typedef struct _WebKitDOMTestCustomNamedGetterPrivate WebKitDOMTestCustomNamedGetterPrivate;
     39
    3840struct _WebKitDOMTestCustomNamedGetter {
    3941    WebKitDOMObject parent_instance;
     42
     43    WebKitDOMTestCustomNamedGetterPrivate *priv;
    4044};
    4145
  • trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp

    r136491 r136498  
    3232#include <wtf/RefPtr.h>
    3333
     34struct _WebKitDOMTestEventConstructorPrivate {
     35    RefPtr<WebCore::TestEventConstructor> coreObject;
     36};
     37
    3438namespace WebKit {
    3539
     
    4751{
    4852    g_return_val_if_fail(request, 0);
    49 
    50     WebCore::TestEventConstructor* coreObject = static_cast<WebCore::TestEventConstructor*>(WEBKIT_DOM_OBJECT(request)->coreObject);
    51     g_return_val_if_fail(coreObject, 0);
    52 
    53     return coreObject;
     53    return request->priv->coreObject.get();
    5454}
    5555
     
    5757{
    5858    g_return_val_if_fail(coreObject, 0);
    59 
    60     // We call ref() rather than using a C++ smart pointer because we can't store a C++ object
    61     // in a C-allocated GObject structure. See the finalize() code for the matching deref().
    62     coreObject->ref();
    63 
    6459    return WEBKIT_DOM_TEST_EVENT_CONSTRUCTOR(g_object_new(WEBKIT_TYPE_DOM_TEST_EVENT_CONSTRUCTOR, "core-object", coreObject, NULL));
    6560}
     
    7772static void webkit_dom_test_event_constructor_finalize(GObject* object)
    7873{
     74    WebKitDOMTestEventConstructorPrivate* priv = WEBKIT_DOM_TEST_EVENT_CONSTRUCTOR(object)->priv;
    7975
    80     WebKitDOMObject* domObject = WEBKIT_DOM_OBJECT(object);
    81    
    82     if (domObject->coreObject) {
    83         WebCore::TestEventConstructor* coreObject = static_cast<WebCore::TestEventConstructor*>(domObject->coreObject);
     76    WebKit::DOMObjectCache::forget(priv->coreObject.get());
    8477
    85         WebKit::DOMObjectCache::forget(coreObject);
    86         coreObject->deref();
    87 
    88         domObject->coreObject = 0;
    89     }
    90 
    91 
     78    priv->~WebKitDOMTestEventConstructorPrivate();
    9279    G_OBJECT_CLASS(webkit_dom_test_event_constructor_parent_class)->finalize(object);
    9380}
     
    115102}
    116103
     104static GObject* webkit_dom_test_event_constructor_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties)
     105{
     106    GObject* object = G_OBJECT_CLASS(webkit_dom_test_event_constructor_parent_class)->constructor(type, constructPropertiesCount, constructProperties);
     107
     108    WebKitDOMTestEventConstructorPrivate* priv = WEBKIT_DOM_TEST_EVENT_CONSTRUCTOR(object)->priv;
     109    priv->coreObject = static_cast<WebCore::TestEventConstructor*>(WEBKIT_DOM_OBJECT(object)->coreObject);
     110
     111    return object;
     112}
     113
    117114static void webkit_dom_test_event_constructor_class_init(WebKitDOMTestEventConstructorClass* requestClass)
    118115{
    119116    GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass);
     117    gobjectClass->constructor = webkit_dom_test_event_constructor_constructor;
    120118    gobjectClass->finalize = webkit_dom_test_event_constructor_finalize;
     119    g_type_class_add_private(gobjectClass, sizeof(WebKitDOMTestEventConstructorPrivate));
    121120    gobjectClass->get_property = webkit_dom_test_event_constructor_get_property;
    122121
     
    137136}
    138137
    139 static void webkit_dom_test_event_constructor_init(WebKitDOMTestEventConstructor* request)
     138static void webkit_dom_test_event_constructor_init(WebKitDOMTestEventConstructor* self)
    140139{
     140    WebKitDOMTestEventConstructorPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(self, WEBKIT_TYPE_DOM_TEST_EVENT_CONSTRUCTOR, WebKitDOMTestEventConstructorPrivate);
     141    self->priv = priv;
     142    new (priv) WebKitDOMTestEventConstructorPrivate();
    141143}
    142144
  • trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h

    r133893 r136498  
    3636#define WEBKIT_DOM_TEST_EVENT_CONSTRUCTOR_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj),  WEBKIT_TYPE_DOM_TEST_EVENT_CONSTRUCTOR, WebKitDOMTestEventConstructorClass))
    3737
     38typedef struct _WebKitDOMTestEventConstructorPrivate WebKitDOMTestEventConstructorPrivate;
     39
    3840struct _WebKitDOMTestEventConstructor {
    3941    WebKitDOMObject parent_instance;
     42
     43    WebKitDOMTestEventConstructorPrivate *priv;
    4044};
    4145
  • trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp

    r136491 r136498  
    3636#include <wtf/RefPtr.h>
    3737
     38struct _WebKitDOMTestEventTargetPrivate {
     39    RefPtr<WebCore::TestEventTarget> coreObject;
     40};
     41
    3842namespace WebKit {
    3943
     
    5155{
    5256    g_return_val_if_fail(request, 0);
    53 
    54     WebCore::TestEventTarget* coreObject = static_cast<WebCore::TestEventTarget*>(WEBKIT_DOM_OBJECT(request)->coreObject);
    55     g_return_val_if_fail(coreObject, 0);
    56 
    57     return coreObject;
     57    return request->priv->coreObject.get();
    5858}
    5959
     
    6161{
    6262    g_return_val_if_fail(coreObject, 0);
    63 
    64     // We call ref() rather than using a C++ smart pointer because we can't store a C++ object
    65     // in a C-allocated GObject structure. See the finalize() code for the matching deref().
    66     coreObject->ref();
    67 
    6863    return WEBKIT_DOM_TEST_EVENT_TARGET(g_object_new(WEBKIT_TYPE_DOM_TEST_EVENT_TARGET, "core-object", coreObject, NULL));
    6964}
     
    7368static void webkit_dom_test_event_target_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error)
    7469{
    75     WebCore::Event* coreEvent = WebKit::core(event);
    76     WebCore::TestEventTarget* coreTarget = static_cast<WebCore::TestEventTarget*>(WEBKIT_DOM_OBJECT(target)->coreObject);
    77 
    7870    WebCore::ExceptionCode ec = 0;
    79     coreTarget->dispatchEvent(coreEvent, ec);
     71    WEBKIT_DOM_TEST_EVENT_TARGET(target)->priv->coreObject->dispatchEvent(WebKit::core(event), ec);
    8072    if (ec) {
    8173        WebCore::ExceptionCodeDescription description(ec);
     
    8678static gboolean webkit_dom_test_event_target_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GCallback handler, gboolean bubble, gpointer userData)
    8779{
    88     WebCore::TestEventTarget* coreTarget = static_cast<WebCore::TestEventTarget*>(WEBKIT_DOM_OBJECT(target)->coreObject);
     80    WebCore::TestEventTarget* coreTarget = WEBKIT_DOM_TEST_EVENT_TARGET(target)->priv->coreObject.get();
    8981    return WebCore::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, bubble, userData);
    9082}
     
    9284static gboolean webkit_dom_test_event_target_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GCallback handler, gboolean bubble)
    9385{
    94     WebCore::TestEventTarget* coreTarget = static_cast<WebCore::TestEventTarget*>(WEBKIT_DOM_OBJECT(target)->coreObject);
     86    WebCore::TestEventTarget* coreTarget = WEBKIT_DOM_TEST_EVENT_TARGET(target)->priv->coreObject.get();
    9587    return WebCore::GObjectEventListener::removeEventListener(G_OBJECT(target), coreTarget, eventName, handler, bubble);
    9688}
     
    10799static void webkit_dom_test_event_target_finalize(GObject* object)
    108100{
     101    WebKitDOMTestEventTargetPrivate* priv = WEBKIT_DOM_TEST_EVENT_TARGET(object)->priv;
    109102
    110     WebKitDOMObject* domObject = WEBKIT_DOM_OBJECT(object);
    111    
    112     if (domObject->coreObject) {
    113         WebCore::TestEventTarget* coreObject = static_cast<WebCore::TestEventTarget*>(domObject->coreObject);
     103    WebKit::DOMObjectCache::forget(priv->coreObject.get());
    114104
    115         WebKit::DOMObjectCache::forget(coreObject);
    116         coreObject->deref();
     105    priv->~WebKitDOMTestEventTargetPrivate();
     106    G_OBJECT_CLASS(webkit_dom_test_event_target_parent_class)->finalize(object);
     107}
    117108
    118         domObject->coreObject = 0;
    119     }
     109static GObject* webkit_dom_test_event_target_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties)
     110{
     111    GObject* object = G_OBJECT_CLASS(webkit_dom_test_event_target_parent_class)->constructor(type, constructPropertiesCount, constructProperties);
    120112
     113    WebKitDOMTestEventTargetPrivate* priv = WEBKIT_DOM_TEST_EVENT_TARGET(object)->priv;
     114    priv->coreObject = static_cast<WebCore::TestEventTarget*>(WEBKIT_DOM_OBJECT(object)->coreObject);
    121115
    122     G_OBJECT_CLASS(webkit_dom_test_event_target_parent_class)->finalize(object);
     116    return object;
    123117}
    124118
     
    126120{
    127121    GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass);
     122    gobjectClass->constructor = webkit_dom_test_event_target_constructor;
    128123    gobjectClass->finalize = webkit_dom_test_event_target_finalize;
     124    g_type_class_add_private(gobjectClass, sizeof(WebKitDOMTestEventTargetPrivate));
    129125}
    130126
    131 static void webkit_dom_test_event_target_init(WebKitDOMTestEventTarget* request)
     127static void webkit_dom_test_event_target_init(WebKitDOMTestEventTarget* self)
    132128{
     129    WebKitDOMTestEventTargetPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(self, WEBKIT_TYPE_DOM_TEST_EVENT_TARGET, WebKitDOMTestEventTargetPrivate);
     130    self->priv = priv;
     131    new (priv) WebKitDOMTestEventTargetPrivate();
    133132}
    134133
  • trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h

    r133893 r136498  
    3636#define WEBKIT_DOM_TEST_EVENT_TARGET_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj),  WEBKIT_TYPE_DOM_TEST_EVENT_TARGET, WebKitDOMTestEventTargetClass))
    3737
     38typedef struct _WebKitDOMTestEventTargetPrivate WebKitDOMTestEventTargetPrivate;
     39
    3840struct _WebKitDOMTestEventTarget {
    3941    WebKitDOMObject parent_instance;
     42
     43    WebKitDOMTestEventTargetPrivate *priv;
    4044};
    4145
  • trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestException.cpp

    r136491 r136498  
    3232#include <wtf/RefPtr.h>
    3333
     34struct _WebKitDOMTestExceptionPrivate {
     35    RefPtr<WebCore::TestException> coreObject;
     36};
     37
    3438namespace WebKit {
    3539
     
    4751{
    4852    g_return_val_if_fail(request, 0);
    49 
    50     WebCore::TestException* coreObject = static_cast<WebCore::TestException*>(WEBKIT_DOM_OBJECT(request)->coreObject);
    51     g_return_val_if_fail(coreObject, 0);
    52 
    53     return coreObject;
     53    return request->priv->coreObject.get();
    5454}
    5555
     
    5757{
    5858    g_return_val_if_fail(coreObject, 0);
    59 
    60     // We call ref() rather than using a C++ smart pointer because we can't store a C++ object
    61     // in a C-allocated GObject structure. See the finalize() code for the matching deref().
    62     coreObject->ref();
    63 
    6459    return WEBKIT_DOM_TEST_EXCEPTION(g_object_new(WEBKIT_TYPE_DOM_TEST_EXCEPTION, "core-object", coreObject, NULL));
    6560}
     
    7671static void webkit_dom_test_exception_finalize(GObject* object)
    7772{
     73    WebKitDOMTestExceptionPrivate* priv = WEBKIT_DOM_TEST_EXCEPTION(object)->priv;
    7874
    79     WebKitDOMObject* domObject = WEBKIT_DOM_OBJECT(object);
    80    
    81     if (domObject->coreObject) {
    82         WebCore::TestException* coreObject = static_cast<WebCore::TestException*>(domObject->coreObject);
     75    WebKit::DOMObjectCache::forget(priv->coreObject.get());
    8376
    84         WebKit::DOMObjectCache::forget(coreObject);
    85         coreObject->deref();
    86 
    87         domObject->coreObject = 0;
    88     }
    89 
    90 
     77    priv->~WebKitDOMTestExceptionPrivate();
    9178    G_OBJECT_CLASS(webkit_dom_test_exception_parent_class)->finalize(object);
    9279}
     
    11097}
    11198
     99static GObject* webkit_dom_test_exception_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties)
     100{
     101    GObject* object = G_OBJECT_CLASS(webkit_dom_test_exception_parent_class)->constructor(type, constructPropertiesCount, constructProperties);
     102
     103    WebKitDOMTestExceptionPrivate* priv = WEBKIT_DOM_TEST_EXCEPTION(object)->priv;
     104    priv->coreObject = static_cast<WebCore::TestException*>(WEBKIT_DOM_OBJECT(object)->coreObject);
     105
     106    return object;
     107}
     108
    112109static void webkit_dom_test_exception_class_init(WebKitDOMTestExceptionClass* requestClass)
    113110{
    114111    GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass);
     112    gobjectClass->constructor = webkit_dom_test_exception_constructor;
    115113    gobjectClass->finalize = webkit_dom_test_exception_finalize;
     114    g_type_class_add_private(gobjectClass, sizeof(WebKitDOMTestExceptionPrivate));
    116115    gobjectClass->get_property = webkit_dom_test_exception_get_property;
    117116
     
    125124}
    126125
    127 static void webkit_dom_test_exception_init(WebKitDOMTestException* request)
     126static void webkit_dom_test_exception_init(WebKitDOMTestException* self)
    128127{
     128    WebKitDOMTestExceptionPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(self, WEBKIT_TYPE_DOM_TEST_EXCEPTION, WebKitDOMTestExceptionPrivate);
     129    self->priv = priv;
     130    new (priv) WebKitDOMTestExceptionPrivate();
    129131}
    130132
  • trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestException.h

    r133893 r136498  
    3636#define WEBKIT_DOM_TEST_EXCEPTION_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj),  WEBKIT_TYPE_DOM_TEST_EXCEPTION, WebKitDOMTestExceptionClass))
    3737
     38typedef struct _WebKitDOMTestExceptionPrivate WebKitDOMTestExceptionPrivate;
     39
    3840struct _WebKitDOMTestException {
    3941    WebKitDOMObject parent_instance;
     42
     43    WebKitDOMTestExceptionPrivate *priv;
    4044};
    4145
  • trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp

    r136491 r136498  
    3535#include <wtf/RefPtr.h>
    3636
     37struct _WebKitDOMTestInterfacePrivate {
     38#if ENABLE(Condition1) || ENABLE(Condition2)
     39    RefPtr<WebCore::TestInterface> coreObject;
     40#endif // ENABLE(Condition1) || ENABLE(Condition2)
     41};
     42
    3743#if ENABLE(Condition1) || ENABLE(Condition2)
    3844
     
    5258{
    5359    g_return_val_if_fail(request, 0);
    54 
    55     WebCore::TestInterface* coreObject = static_cast<WebCore::TestInterface*>(WEBKIT_DOM_OBJECT(request)->coreObject);
     60    return request->priv->coreObject.get();
     61}
     62
     63WebKitDOMTestInterface* wrapTestInterface(WebCore::TestInterface* coreObject)
     64{
    5665    g_return_val_if_fail(coreObject, 0);
    57 
    58     return coreObject;
    59 }
    60 
    61 WebKitDOMTestInterface* wrapTestInterface(WebCore::TestInterface* coreObject)
    62 {
    63     g_return_val_if_fail(coreObject, 0);
    64 
    65     // We call ref() rather than using a C++ smart pointer because we can't store a C++ object
    66     // in a C-allocated GObject structure. See the finalize() code for the matching deref().
    67     coreObject->ref();
    68 
    6966    return WEBKIT_DOM_TEST_INTERFACE(g_object_new(WEBKIT_TYPE_DOM_TEST_INTERFACE, "core-object", coreObject, NULL));
    7067}
     
    8582static void webkit_dom_test_interface_finalize(GObject* object)
    8683{
    87 #if ENABLE(Condition1) || ENABLE(Condition2)
    88     WebKitDOMObject* domObject = WEBKIT_DOM_OBJECT(object);
    89    
    90     if (domObject->coreObject) {
    91         WebCore::TestInterface* coreObject = static_cast<WebCore::TestInterface*>(domObject->coreObject);
    92 
    93         WebKit::DOMObjectCache::forget(coreObject);
    94         coreObject->deref();
    95 
    96         domObject->coreObject = 0;
    97     }
    98 #endif // ENABLE(Condition1) || ENABLE(Condition2)
    99 
     84    WebKitDOMTestInterfacePrivate* priv = WEBKIT_DOM_TEST_INTERFACE(object)->priv;
     85#if ENABLE(Condition1) || ENABLE(Condition2)
     86    WebKit::DOMObjectCache::forget(priv->coreObject.get());
     87#endif // ENABLE(Condition1) || ENABLE(Condition2)
     88    priv->~WebKitDOMTestInterfacePrivate();
    10089    G_OBJECT_CLASS(webkit_dom_test_interface_parent_class)->finalize(object);
    10190}
     
    186175}
    187176
     177static GObject* webkit_dom_test_interface_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties)
     178{
     179    GObject* object = G_OBJECT_CLASS(webkit_dom_test_interface_parent_class)->constructor(type, constructPropertiesCount, constructProperties);
     180#if ENABLE(Condition1) || ENABLE(Condition2)
     181    WebKitDOMTestInterfacePrivate* priv = WEBKIT_DOM_TEST_INTERFACE(object)->priv;
     182    priv->coreObject = static_cast<WebCore::TestInterface*>(WEBKIT_DOM_OBJECT(object)->coreObject);
     183#endif // ENABLE(Condition1) || ENABLE(Condition2)
     184    return object;
     185}
     186
    188187static void webkit_dom_test_interface_class_init(WebKitDOMTestInterfaceClass* requestClass)
    189188{
    190189    GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass);
     190    gobjectClass->constructor = webkit_dom_test_interface_constructor;
    191191    gobjectClass->finalize = webkit_dom_test_interface_finalize;
     192    g_type_class_add_private(gobjectClass, sizeof(WebKitDOMTestInterfacePrivate));
    192193    gobjectClass->set_property = webkit_dom_test_interface_set_property;
    193194    gobjectClass->get_property = webkit_dom_test_interface_get_property;
     
    216217}
    217218
    218 static void webkit_dom_test_interface_init(WebKitDOMTestInterface* request)
    219 {
     219static void webkit_dom_test_interface_init(WebKitDOMTestInterface* self)
     220{
     221    WebKitDOMTestInterfacePrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(self, WEBKIT_TYPE_DOM_TEST_INTERFACE, WebKitDOMTestInterfacePrivate);
     222    self->priv = priv;
     223    new (priv) WebKitDOMTestInterfacePrivate();
    220224}
    221225
  • trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestInterface.h

    r133893 r136498  
    3636#define WEBKIT_DOM_TEST_INTERFACE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj),  WEBKIT_TYPE_DOM_TEST_INTERFACE, WebKitDOMTestInterfaceClass))
    3737
     38typedef struct _WebKitDOMTestInterfacePrivate WebKitDOMTestInterfacePrivate;
     39
    3840struct _WebKitDOMTestInterface {
    3941    WebKitDOMObject parent_instance;
     42
     43    WebKitDOMTestInterfacePrivate *priv;
    4044};
    4145
  • trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp

    r136491 r136498  
    3232#include <wtf/RefPtr.h>
    3333
     34struct _WebKitDOMTestMediaQueryListListenerPrivate {
     35    RefPtr<WebCore::TestMediaQueryListListener> coreObject;
     36};
     37
    3438namespace WebKit {
    3539
     
    4751{
    4852    g_return_val_if_fail(request, 0);
    49 
    50     WebCore::TestMediaQueryListListener* coreObject = static_cast<WebCore::TestMediaQueryListListener*>(WEBKIT_DOM_OBJECT(request)->coreObject);
    51     g_return_val_if_fail(coreObject, 0);
    52 
    53     return coreObject;
     53    return request->priv->coreObject.get();
    5454}
    5555
     
    5757{
    5858    g_return_val_if_fail(coreObject, 0);
    59 
    60     // We call ref() rather than using a C++ smart pointer because we can't store a C++ object
    61     // in a C-allocated GObject structure. See the finalize() code for the matching deref().
    62     coreObject->ref();
    63 
    6459    return WEBKIT_DOM_TEST_MEDIA_QUERY_LIST_LISTENER(g_object_new(WEBKIT_TYPE_DOM_TEST_MEDIA_QUERY_LIST_LISTENER, "core-object", coreObject, NULL));
    6560}
     
    7166static void webkit_dom_test_media_query_list_listener_finalize(GObject* object)
    7267{
     68    WebKitDOMTestMediaQueryListListenerPrivate* priv = WEBKIT_DOM_TEST_MEDIA_QUERY_LIST_LISTENER(object)->priv;
    7369
    74     WebKitDOMObject* domObject = WEBKIT_DOM_OBJECT(object);
    75    
    76     if (domObject->coreObject) {
    77         WebCore::TestMediaQueryListListener* coreObject = static_cast<WebCore::TestMediaQueryListListener*>(domObject->coreObject);
     70    WebKit::DOMObjectCache::forget(priv->coreObject.get());
    7871
    79         WebKit::DOMObjectCache::forget(coreObject);
    80         coreObject->deref();
     72    priv->~WebKitDOMTestMediaQueryListListenerPrivate();
     73    G_OBJECT_CLASS(webkit_dom_test_media_query_list_listener_parent_class)->finalize(object);
     74}
    8175
    82         domObject->coreObject = 0;
    83     }
     76static GObject* webkit_dom_test_media_query_list_listener_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties)
     77{
     78    GObject* object = G_OBJECT_CLASS(webkit_dom_test_media_query_list_listener_parent_class)->constructor(type, constructPropertiesCount, constructProperties);
    8479
     80    WebKitDOMTestMediaQueryListListenerPrivate* priv = WEBKIT_DOM_TEST_MEDIA_QUERY_LIST_LISTENER(object)->priv;
     81    priv->coreObject = static_cast<WebCore::TestMediaQueryListListener*>(WEBKIT_DOM_OBJECT(object)->coreObject);
    8582
    86     G_OBJECT_CLASS(webkit_dom_test_media_query_list_listener_parent_class)->finalize(object);
     83    return object;
    8784}
    8885
     
    9087{
    9188    GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass);
     89    gobjectClass->constructor = webkit_dom_test_media_query_list_listener_constructor;
    9290    gobjectClass->finalize = webkit_dom_test_media_query_list_listener_finalize;
     91    g_type_class_add_private(gobjectClass, sizeof(WebKitDOMTestMediaQueryListListenerPrivate));
    9392}
    9493
    95 static void webkit_dom_test_media_query_list_listener_init(WebKitDOMTestMediaQueryListListener* request)
     94static void webkit_dom_test_media_query_list_listener_init(WebKitDOMTestMediaQueryListListener* self)
    9695{
     96    WebKitDOMTestMediaQueryListListenerPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(self, WEBKIT_TYPE_DOM_TEST_MEDIA_QUERY_LIST_LISTENER, WebKitDOMTestMediaQueryListListenerPrivate);
     97    self->priv = priv;
     98    new (priv) WebKitDOMTestMediaQueryListListenerPrivate();
    9799}
    98100
  • trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h

    r133893 r136498  
    3636#define WEBKIT_DOM_TEST_MEDIA_QUERY_LIST_LISTENER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj),  WEBKIT_TYPE_DOM_TEST_MEDIA_QUERY_LIST_LISTENER, WebKitDOMTestMediaQueryListListenerClass))
    3737
     38typedef struct _WebKitDOMTestMediaQueryListListenerPrivate WebKitDOMTestMediaQueryListListenerPrivate;
     39
    3840struct _WebKitDOMTestMediaQueryListListener {
    3941    WebKitDOMObject parent_instance;
     42
     43    WebKitDOMTestMediaQueryListListenerPrivate *priv;
    4044};
    4145
  • trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp

    r136491 r136498  
    3232#include <wtf/RefPtr.h>
    3333
     34struct _WebKitDOMTestNamedConstructorPrivate {
     35    RefPtr<WebCore::TestNamedConstructor> coreObject;
     36};
     37
    3438namespace WebKit {
    3539
     
    4751{
    4852    g_return_val_if_fail(request, 0);
    49 
    50     WebCore::TestNamedConstructor* coreObject = static_cast<WebCore::TestNamedConstructor*>(WEBKIT_DOM_OBJECT(request)->coreObject);
    51     g_return_val_if_fail(coreObject, 0);
    52 
    53     return coreObject;
     53    return request->priv->coreObject.get();
    5454}
    5555
     
    5757{
    5858    g_return_val_if_fail(coreObject, 0);
    59 
    60     // We call ref() rather than using a C++ smart pointer because we can't store a C++ object
    61     // in a C-allocated GObject structure. See the finalize() code for the matching deref().
    62     coreObject->ref();
    63 
    6459    return WEBKIT_DOM_TEST_NAMED_CONSTRUCTOR(g_object_new(WEBKIT_TYPE_DOM_TEST_NAMED_CONSTRUCTOR, "core-object", coreObject, NULL));
    6560}
     
    7166static void webkit_dom_test_named_constructor_finalize(GObject* object)
    7267{
     68    WebKitDOMTestNamedConstructorPrivate* priv = WEBKIT_DOM_TEST_NAMED_CONSTRUCTOR(object)->priv;
    7369
    74     WebKitDOMObject* domObject = WEBKIT_DOM_OBJECT(object);
    75    
    76     if (domObject->coreObject) {
    77         WebCore::TestNamedConstructor* coreObject = static_cast<WebCore::TestNamedConstructor*>(domObject->coreObject);
     70    WebKit::DOMObjectCache::forget(priv->coreObject.get());
    7871
    79         WebKit::DOMObjectCache::forget(coreObject);
    80         coreObject->deref();
     72    priv->~WebKitDOMTestNamedConstructorPrivate();
     73    G_OBJECT_CLASS(webkit_dom_test_named_constructor_parent_class)->finalize(object);
     74}
    8175
    82         domObject->coreObject = 0;
    83     }
     76static GObject* webkit_dom_test_named_constructor_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties)
     77{
     78    GObject* object = G_OBJECT_CLASS(webkit_dom_test_named_constructor_parent_class)->constructor(type, constructPropertiesCount, constructProperties);
    8479
     80    WebKitDOMTestNamedConstructorPrivate* priv = WEBKIT_DOM_TEST_NAMED_CONSTRUCTOR(object)->priv;
     81    priv->coreObject = static_cast<WebCore::TestNamedConstructor*>(WEBKIT_DOM_OBJECT(object)->coreObject);
    8582
    86     G_OBJECT_CLASS(webkit_dom_test_named_constructor_parent_class)->finalize(object);
     83    return object;
    8784}
    8885
     
    9087{
    9188    GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass);
     89    gobjectClass->constructor = webkit_dom_test_named_constructor_constructor;
    9290    gobjectClass->finalize = webkit_dom_test_named_constructor_finalize;
     91    g_type_class_add_private(gobjectClass, sizeof(WebKitDOMTestNamedConstructorPrivate));
    9392}
    9493
    95 static void webkit_dom_test_named_constructor_init(WebKitDOMTestNamedConstructor* request)
     94static void webkit_dom_test_named_constructor_init(WebKitDOMTestNamedConstructor* self)
    9695{
     96    WebKitDOMTestNamedConstructorPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(self, WEBKIT_TYPE_DOM_TEST_NAMED_CONSTRUCTOR, WebKitDOMTestNamedConstructorPrivate);
     97    self->priv = priv;
     98    new (priv) WebKitDOMTestNamedConstructorPrivate();
    9799}
    98100
  • trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h

    r133893 r136498  
    3636#define WEBKIT_DOM_TEST_NAMED_CONSTRUCTOR_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj),  WEBKIT_TYPE_DOM_TEST_NAMED_CONSTRUCTOR, WebKitDOMTestNamedConstructorClass))
    3737
     38typedef struct _WebKitDOMTestNamedConstructorPrivate WebKitDOMTestNamedConstructorPrivate;
     39
    3840struct _WebKitDOMTestNamedConstructor {
    3941    WebKitDOMObject parent_instance;
     42
     43    WebKitDOMTestNamedConstructorPrivate *priv;
    4044};
    4145
  • trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestNode.cpp

    r136491 r136498  
    3535#include <wtf/RefPtr.h>
    3636
     37struct _WebKitDOMTestNodePrivate {
     38    RefPtr<WebCore::TestNode> coreObject;
     39};
     40
    3741namespace WebKit {
    3842
     
    5054{
    5155    g_return_val_if_fail(request, 0);
    52 
    53     WebCore::TestNode* coreObject = static_cast<WebCore::TestNode*>(WEBKIT_DOM_OBJECT(request)->coreObject);
    54     g_return_val_if_fail(coreObject, 0);
    55 
    56     return coreObject;
     56    return request->priv->coreObject.get();
    5757}
    5858
     
    6060{
    6161    g_return_val_if_fail(coreObject, 0);
    62 
    63     // We call ref() rather than using a C++ smart pointer because we can't store a C++ object
    64     // in a C-allocated GObject structure. See the finalize() code for the matching deref().
    65     coreObject->ref();
    66 
    6762    return WEBKIT_DOM_TEST_NODE(g_object_new(WEBKIT_TYPE_DOM_TEST_NODE, "core-object", coreObject, NULL));
    6863}
     
    7267static void webkit_dom_test_node_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error)
    7368{
    74     WebCore::Event* coreEvent = WebKit::core(event);
    75     WebCore::TestNode* coreTarget = static_cast<WebCore::TestNode*>(WEBKIT_DOM_OBJECT(target)->coreObject);
    76 
    7769    WebCore::ExceptionCode ec = 0;
    78     coreTarget->dispatchEvent(coreEvent, ec);
     70    WEBKIT_DOM_TEST_NODE(target)->priv->coreObject->dispatchEvent(WebKit::core(event), ec);
    7971    if (ec) {
    8072        WebCore::ExceptionCodeDescription description(ec);
     
    8577static gboolean webkit_dom_test_node_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GCallback handler, gboolean bubble, gpointer userData)
    8678{
    87     WebCore::TestNode* coreTarget = static_cast<WebCore::TestNode*>(WEBKIT_DOM_OBJECT(target)->coreObject);
     79    WebCore::TestNode* coreTarget = WEBKIT_DOM_TEST_NODE(target)->priv->coreObject.get();
    8880    return WebCore::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, bubble, userData);
    8981}
     
    9183static gboolean webkit_dom_test_node_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GCallback handler, gboolean bubble)
    9284{
    93     WebCore::TestNode* coreTarget = static_cast<WebCore::TestNode*>(WEBKIT_DOM_OBJECT(target)->coreObject);
     85    WebCore::TestNode* coreTarget = WEBKIT_DOM_TEST_NODE(target)->priv->coreObject.get();
    9486    return WebCore::GObjectEventListener::removeEventListener(G_OBJECT(target), coreTarget, eventName, handler, bubble);
    9587}
     
    10698static void webkit_dom_test_node_finalize(GObject* object)
    10799{
     100    WebKitDOMTestNodePrivate* priv = WEBKIT_DOM_TEST_NODE(object)->priv;
    108101
    109     WebKitDOMObject* domObject = WEBKIT_DOM_OBJECT(object);
    110    
    111     if (domObject->coreObject) {
    112         WebCore::TestNode* coreObject = static_cast<WebCore::TestNode*>(domObject->coreObject);
     102    WebKit::DOMObjectCache::forget(priv->coreObject.get());
    113103
    114         WebKit::DOMObjectCache::forget(coreObject);
    115         coreObject->deref();
     104    priv->~WebKitDOMTestNodePrivate();
     105    G_OBJECT_CLASS(webkit_dom_test_node_parent_class)->finalize(object);
     106}
    116107
    117         domObject->coreObject = 0;
    118     }
     108static GObject* webkit_dom_test_node_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties)
     109{
     110    GObject* object = G_OBJECT_CLASS(webkit_dom_test_node_parent_class)->constructor(type, constructPropertiesCount, constructProperties);
    119111
     112    WebKitDOMTestNodePrivate* priv = WEBKIT_DOM_TEST_NODE(object)->priv;
     113    priv->coreObject = static_cast<WebCore::TestNode*>(WEBKIT_DOM_OBJECT(object)->coreObject);
    120114
    121     G_OBJECT_CLASS(webkit_dom_test_node_parent_class)->finalize(object);
     115    return object;
    122116}
    123117
     
    125119{
    126120    GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass);
     121    gobjectClass->constructor = webkit_dom_test_node_constructor;
    127122    gobjectClass->finalize = webkit_dom_test_node_finalize;
     123    g_type_class_add_private(gobjectClass, sizeof(WebKitDOMTestNodePrivate));
    128124}
    129125
    130 static void webkit_dom_test_node_init(WebKitDOMTestNode* request)
     126static void webkit_dom_test_node_init(WebKitDOMTestNode* self)
    131127{
     128    WebKitDOMTestNodePrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(self, WEBKIT_TYPE_DOM_TEST_NODE, WebKitDOMTestNodePrivate);
     129    self->priv = priv;
     130    new (priv) WebKitDOMTestNodePrivate();
    132131}
    133132
  • trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestNode.h

    r133893 r136498  
    3636#define WEBKIT_DOM_TEST_NODE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj),  WEBKIT_TYPE_DOM_TEST_NODE, WebKitDOMTestNodeClass))
    3737
     38typedef struct _WebKitDOMTestNodePrivate WebKitDOMTestNodePrivate;
     39
    3840struct _WebKitDOMTestNode {
    3941    WebKitDOMNode parent_instance;
     42
     43    WebKitDOMTestNodePrivate *priv;
    4044};
    4145
  • trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp

    r136491 r136498  
    4545#include <wtf/RefPtr.h>
    4646
     47struct _WebKitDOMTestObjPrivate {
     48    RefPtr<WebCore::TestObj> coreObject;
     49};
     50
    4751namespace WebKit {
    4852
     
    6064{
    6165    g_return_val_if_fail(request, 0);
    62 
    63     WebCore::TestObj* coreObject = static_cast<WebCore::TestObj*>(WEBKIT_DOM_OBJECT(request)->coreObject);
     66    return request->priv->coreObject.get();
     67}
     68
     69WebKitDOMTestObj* wrapTestObj(WebCore::TestObj* coreObject)
     70{
    6471    g_return_val_if_fail(coreObject, 0);
    65 
    66     return coreObject;
    67 }
    68 
    69 WebKitDOMTestObj* wrapTestObj(WebCore::TestObj* coreObject)
    70 {
    71     g_return_val_if_fail(coreObject, 0);
    72 
    73     // We call ref() rather than using a C++ smart pointer because we can't store a C++ object
    74     // in a C-allocated GObject structure. See the finalize() code for the matching deref().
    75     coreObject->ref();
    76 
    7772    return WEBKIT_DOM_TEST_OBJ(g_object_new(WEBKIT_TYPE_DOM_TEST_OBJ, "core-object", coreObject, NULL));
    7873}
     
    134129static void webkit_dom_test_obj_finalize(GObject* object)
    135130{
    136 
    137     WebKitDOMObject* domObject = WEBKIT_DOM_OBJECT(object);
    138    
    139     if (domObject->coreObject) {
    140         WebCore::TestObj* coreObject = static_cast<WebCore::TestObj*>(domObject->coreObject);
    141 
    142         WebKit::DOMObjectCache::forget(coreObject);
    143         coreObject->deref();
    144 
    145         domObject->coreObject = 0;
    146     }
    147 
    148 
     131    WebKitDOMTestObjPrivate* priv = WEBKIT_DOM_TEST_OBJ(object)->priv;
     132
     133    WebKit::DOMObjectCache::forget(priv->coreObject.get());
     134
     135    priv->~WebKitDOMTestObjPrivate();
    149136    G_OBJECT_CLASS(webkit_dom_test_obj_parent_class)->finalize(object);
    150137}
     
    519506}
    520507
     508static GObject* webkit_dom_test_obj_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties)
     509{
     510    GObject* object = G_OBJECT_CLASS(webkit_dom_test_obj_parent_class)->constructor(type, constructPropertiesCount, constructProperties);
     511
     512    WebKitDOMTestObjPrivate* priv = WEBKIT_DOM_TEST_OBJ(object)->priv;
     513    priv->coreObject = static_cast<WebCore::TestObj*>(WEBKIT_DOM_OBJECT(object)->coreObject);
     514
     515    return object;
     516}
     517
    521518static void webkit_dom_test_obj_class_init(WebKitDOMTestObjClass* requestClass)
    522519{
    523520    GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass);
     521    gobjectClass->constructor = webkit_dom_test_obj_constructor;
    524522    gobjectClass->finalize = webkit_dom_test_obj_finalize;
     523    g_type_class_add_private(gobjectClass, sizeof(WebKitDOMTestObjPrivate));
    525524    gobjectClass->set_property = webkit_dom_test_obj_set_property;
    526525    gobjectClass->get_property = webkit_dom_test_obj_get_property;
     
    890889}
    891890
    892 static void webkit_dom_test_obj_init(WebKitDOMTestObj* request)
    893 {
     891static void webkit_dom_test_obj_init(WebKitDOMTestObj* self)
     892{
     893    WebKitDOMTestObjPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(self, WEBKIT_TYPE_DOM_TEST_OBJ, WebKitDOMTestObjPrivate);
     894    self->priv = priv;
     895    new (priv) WebKitDOMTestObjPrivate();
    894896}
    895897
  • trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.h

    r133893 r136498  
    3636#define WEBKIT_DOM_TEST_OBJ_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj),  WEBKIT_TYPE_DOM_TEST_OBJ, WebKitDOMTestObjClass))
    3737
     38typedef struct _WebKitDOMTestObjPrivate WebKitDOMTestObjPrivate;
     39
    3840struct _WebKitDOMTestObj {
    3941    WebKitDOMObject parent_instance;
     42
     43    WebKitDOMTestObjPrivate *priv;
    4044};
    4145
  • trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp

    r136491 r136498  
    3232#include <wtf/RefPtr.h>
    3333
     34struct _WebKitDOMTestOverloadedConstructorsPrivate {
     35    RefPtr<WebCore::TestOverloadedConstructors> coreObject;
     36};
     37
    3438namespace WebKit {
    3539
     
    4751{
    4852    g_return_val_if_fail(request, 0);
    49 
    50     WebCore::TestOverloadedConstructors* coreObject = static_cast<WebCore::TestOverloadedConstructors*>(WEBKIT_DOM_OBJECT(request)->coreObject);
    51     g_return_val_if_fail(coreObject, 0);
    52 
    53     return coreObject;
     53    return request->priv->coreObject.get();
    5454}
    5555
     
    5757{
    5858    g_return_val_if_fail(coreObject, 0);
    59 
    60     // We call ref() rather than using a C++ smart pointer because we can't store a C++ object
    61     // in a C-allocated GObject structure. See the finalize() code for the matching deref().
    62     coreObject->ref();
    63 
    6459    return WEBKIT_DOM_TEST_OVERLOADED_CONSTRUCTORS(g_object_new(WEBKIT_TYPE_DOM_TEST_OVERLOADED_CONSTRUCTORS, "core-object", coreObject, NULL));
    6560}
     
    7166static void webkit_dom_test_overloaded_constructors_finalize(GObject* object)
    7267{
     68    WebKitDOMTestOverloadedConstructorsPrivate* priv = WEBKIT_DOM_TEST_OVERLOADED_CONSTRUCTORS(object)->priv;
    7369
    74     WebKitDOMObject* domObject = WEBKIT_DOM_OBJECT(object);
    75    
    76     if (domObject->coreObject) {
    77         WebCore::TestOverloadedConstructors* coreObject = static_cast<WebCore::TestOverloadedConstructors*>(domObject->coreObject);
     70    WebKit::DOMObjectCache::forget(priv->coreObject.get());
    7871
    79         WebKit::DOMObjectCache::forget(coreObject);
    80         coreObject->deref();
     72    priv->~WebKitDOMTestOverloadedConstructorsPrivate();
     73    G_OBJECT_CLASS(webkit_dom_test_overloaded_constructors_parent_class)->finalize(object);
     74}
    8175
    82         domObject->coreObject = 0;
    83     }
     76static GObject* webkit_dom_test_overloaded_constructors_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties)
     77{
     78    GObject* object = G_OBJECT_CLASS(webkit_dom_test_overloaded_constructors_parent_class)->constructor(type, constructPropertiesCount, constructProperties);
    8479
     80    WebKitDOMTestOverloadedConstructorsPrivate* priv = WEBKIT_DOM_TEST_OVERLOADED_CONSTRUCTORS(object)->priv;
     81    priv->coreObject = static_cast<WebCore::TestOverloadedConstructors*>(WEBKIT_DOM_OBJECT(object)->coreObject);
    8582
    86     G_OBJECT_CLASS(webkit_dom_test_overloaded_constructors_parent_class)->finalize(object);
     83    return object;
    8784}
    8885
     
    9087{
    9188    GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass);
     89    gobjectClass->constructor = webkit_dom_test_overloaded_constructors_constructor;
    9290    gobjectClass->finalize = webkit_dom_test_overloaded_constructors_finalize;
     91    g_type_class_add_private(gobjectClass, sizeof(WebKitDOMTestOverloadedConstructorsPrivate));
    9392}
    9493
    95 static void webkit_dom_test_overloaded_constructors_init(WebKitDOMTestOverloadedConstructors* request)
     94static void webkit_dom_test_overloaded_constructors_init(WebKitDOMTestOverloadedConstructors* self)
    9695{
     96    WebKitDOMTestOverloadedConstructorsPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(self, WEBKIT_TYPE_DOM_TEST_OVERLOADED_CONSTRUCTORS, WebKitDOMTestOverloadedConstructorsPrivate);
     97    self->priv = priv;
     98    new (priv) WebKitDOMTestOverloadedConstructorsPrivate();
    9799}
    98100
  • trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.h

    r134221 r136498  
    3636#define WEBKIT_DOM_TEST_OVERLOADED_CONSTRUCTORS_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj),  WEBKIT_TYPE_DOM_TEST_OVERLOADED_CONSTRUCTORS, WebKitDOMTestOverloadedConstructorsClass))
    3737
     38typedef struct _WebKitDOMTestOverloadedConstructorsPrivate WebKitDOMTestOverloadedConstructorsPrivate;
     39
    3840struct _WebKitDOMTestOverloadedConstructors {
    3941    WebKitDOMObject parent_instance;
     42
     43    WebKitDOMTestOverloadedConstructorsPrivate *priv;
    4044};
    4145
  • trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp

    r136491 r136498  
    3535#include <wtf/RefPtr.h>
    3636
     37struct _WebKitDOMTestSerializedScriptValueInterfacePrivate {
     38#if ENABLE(Condition1) || ENABLE(Condition2)
     39    RefPtr<WebCore::TestSerializedScriptValueInterface> coreObject;
     40#endif // ENABLE(Condition1) || ENABLE(Condition2)
     41};
     42
    3743#if ENABLE(Condition1) || ENABLE(Condition2)
    3844
     
    5258{
    5359    g_return_val_if_fail(request, 0);
    54 
    55     WebCore::TestSerializedScriptValueInterface* coreObject = static_cast<WebCore::TestSerializedScriptValueInterface*>(WEBKIT_DOM_OBJECT(request)->coreObject);
     60    return request->priv->coreObject.get();
     61}
     62
     63WebKitDOMTestSerializedScriptValueInterface* wrapTestSerializedScriptValueInterface(WebCore::TestSerializedScriptValueInterface* coreObject)
     64{
    5665    g_return_val_if_fail(coreObject, 0);
    57 
    58     return coreObject;
    59 }
    60 
    61 WebKitDOMTestSerializedScriptValueInterface* wrapTestSerializedScriptValueInterface(WebCore::TestSerializedScriptValueInterface* coreObject)
    62 {
    63     g_return_val_if_fail(coreObject, 0);
    64 
    65     // We call ref() rather than using a C++ smart pointer because we can't store a C++ object
    66     // in a C-allocated GObject structure. See the finalize() code for the matching deref().
    67     coreObject->ref();
    68 
    6966    return WEBKIT_DOM_TEST_SERIALIZED_SCRIPT_VALUE_INTERFACE(g_object_new(WEBKIT_TYPE_DOM_TEST_SERIALIZED_SCRIPT_VALUE_INTERFACE, "core-object", coreObject, NULL));
    7067}
     
    8784static void webkit_dom_test_serialized_script_value_interface_finalize(GObject* object)
    8885{
    89 #if ENABLE(Condition1) || ENABLE(Condition2)
    90     WebKitDOMObject* domObject = WEBKIT_DOM_OBJECT(object);
    91    
    92     if (domObject->coreObject) {
    93         WebCore::TestSerializedScriptValueInterface* coreObject = static_cast<WebCore::TestSerializedScriptValueInterface*>(domObject->coreObject);
    94 
    95         WebKit::DOMObjectCache::forget(coreObject);
    96         coreObject->deref();
    97 
    98         domObject->coreObject = 0;
    99     }
     86    WebKitDOMTestSerializedScriptValueInterfacePrivate* priv = WEBKIT_DOM_TEST_SERIALIZED_SCRIPT_VALUE_INTERFACE(object)->priv;
     87#if ENABLE(Condition1) || ENABLE(Condition2)
     88    WebKit::DOMObjectCache::forget(priv->coreObject.get());
    10089#endif // ENABLE(Condition1) || ENABLE(Condition2)
    101 
     90    priv->~WebKitDOMTestSerializedScriptValueInterfacePrivate();
    10291    G_OBJECT_CLASS(webkit_dom_test_serialized_script_value_interface_parent_class)->finalize(object);
    10392}
     
    167156}
    168157
     158static GObject* webkit_dom_test_serialized_script_value_interface_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties)
     159{
     160    GObject* object = G_OBJECT_CLASS(webkit_dom_test_serialized_script_value_interface_parent_class)->constructor(type, constructPropertiesCount, constructProperties);
     161#if ENABLE(Condition1) || ENABLE(Condition2)
     162    WebKitDOMTestSerializedScriptValueInterfacePrivate* priv = WEBKIT_DOM_TEST_SERIALIZED_SCRIPT_VALUE_INTERFACE(object)->priv;
     163    priv->coreObject = static_cast<WebCore::TestSerializedScriptValueInterface*>(WEBKIT_DOM_OBJECT(object)->coreObject);
     164#endif // ENABLE(Condition1) || ENABLE(Condition2)
     165    return object;
     166}
     167
    169168static void webkit_dom_test_serialized_script_value_interface_class_init(WebKitDOMTestSerializedScriptValueInterfaceClass* requestClass)
    170169{
    171170    GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass);
     171    gobjectClass->constructor = webkit_dom_test_serialized_script_value_interface_constructor;
    172172    gobjectClass->finalize = webkit_dom_test_serialized_script_value_interface_finalize;
     173    g_type_class_add_private(gobjectClass, sizeof(WebKitDOMTestSerializedScriptValueInterfacePrivate));
    173174    gobjectClass->get_property = webkit_dom_test_serialized_script_value_interface_get_property;
    174175
     
    210211}
    211212
    212 static void webkit_dom_test_serialized_script_value_interface_init(WebKitDOMTestSerializedScriptValueInterface* request)
    213 {
     213static void webkit_dom_test_serialized_script_value_interface_init(WebKitDOMTestSerializedScriptValueInterface* self)
     214{
     215    WebKitDOMTestSerializedScriptValueInterfacePrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(self, WEBKIT_TYPE_DOM_TEST_SERIALIZED_SCRIPT_VALUE_INTERFACE, WebKitDOMTestSerializedScriptValueInterfacePrivate);
     216    self->priv = priv;
     217    new (priv) WebKitDOMTestSerializedScriptValueInterfacePrivate();
    214218}
    215219
  • trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h

    r133893 r136498  
    3636#define WEBKIT_DOM_TEST_SERIALIZED_SCRIPT_VALUE_INTERFACE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj),  WEBKIT_TYPE_DOM_TEST_SERIALIZED_SCRIPT_VALUE_INTERFACE, WebKitDOMTestSerializedScriptValueInterfaceClass))
    3737
     38typedef struct _WebKitDOMTestSerializedScriptValueInterfacePrivate WebKitDOMTestSerializedScriptValueInterfacePrivate;
     39
    3840struct _WebKitDOMTestSerializedScriptValueInterface {
    3941    WebKitDOMObject parent_instance;
     42
     43    WebKitDOMTestSerializedScriptValueInterfacePrivate *priv;
    4044};
    4145
Note: See TracChangeset for help on using the changeset viewer.