Changeset 137072 in webkit
- Timestamp:
- Dec 9, 2012 7:48:02 AM (11 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r137067 r137072 1 2012-12-09 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. Only the classes deriving from WebKitDOMObject keep a 10 reference of the wrapped object in a private struct. The wrapped 11 object is added to the cache in GObjectClass::constructor() and 12 removed in GObjectClass::finalize(). 13 14 * bindings/gobject/WebKitDOMBinding.cpp: 15 (WebKit::createWrapper): 16 (WebKit::kit): 17 (WebKit::wrapEventTarget): 18 * bindings/scripts/CodeGeneratorGObject.pm: 19 (GetParentImplClassName): 20 (GenerateProperties): 21 (GenerateCFile): 22 (Generate): 23 (WriteData): 24 * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp: 25 (WebKit::kit): 26 (WebKit::core): 27 (WebKit::wrapFloat64Array): 28 (webkit_dom_float64array_class_init): 29 * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp: 30 (_WebKitDOMTestActiveDOMObjectPrivate): 31 (WebKit::kit): 32 (WebKit::core): 33 (WebKit::wrapTestActiveDOMObject): 34 (webkit_dom_test_active_dom_object_finalize): 35 (webkit_dom_test_active_dom_object_constructor): 36 (webkit_dom_test_active_dom_object_class_init): 37 (webkit_dom_test_active_dom_object_init): 38 * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp: 39 (_WebKitDOMTestCallbackPrivate): 40 (WebKit::kit): 41 (WebKit::core): 42 (WebKit::wrapTestCallback): 43 (webkit_dom_test_callback_finalize): 44 (webkit_dom_test_callback_constructor): 45 (webkit_dom_test_callback_class_init): 46 (webkit_dom_test_callback_init): 47 * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp: 48 (_WebKitDOMTestCustomNamedGetterPrivate): 49 (WebKit::kit): 50 (WebKit::core): 51 (WebKit::wrapTestCustomNamedGetter): 52 (webkit_dom_test_custom_named_getter_finalize): 53 (webkit_dom_test_custom_named_getter_constructor): 54 (webkit_dom_test_custom_named_getter_class_init): 55 (webkit_dom_test_custom_named_getter_init): 56 * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp: 57 (_WebKitDOMTestEventConstructorPrivate): 58 (WebKit::kit): 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/WebKitDOMTestEventTarget.cpp: 66 (_WebKitDOMTestEventTargetPrivate): 67 (WebKit::kit): 68 (WebKit::core): 69 (WebKit::wrapTestEventTarget): 70 (webkit_dom_test_event_target_finalize): 71 (webkit_dom_test_event_target_constructor): 72 (webkit_dom_test_event_target_class_init): 73 (webkit_dom_test_event_target_init): 74 * bindings/scripts/test/GObject/WebKitDOMTestException.cpp: 75 (_WebKitDOMTestExceptionPrivate): 76 (WebKit::kit): 77 (WebKit::core): 78 (WebKit::wrapTestException): 79 (webkit_dom_test_exception_finalize): 80 (webkit_dom_test_exception_constructor): 81 (webkit_dom_test_exception_class_init): 82 (webkit_dom_test_exception_init): 83 * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp: 84 (_WebKitDOMTestInterfacePrivate): 85 (WebKit::kit): 86 (WebKit::core): 87 (WebKit::wrapTestInterface): 88 (webkit_dom_test_interface_finalize): 89 (webkit_dom_test_interface_constructor): 90 (webkit_dom_test_interface_class_init): 91 (webkit_dom_test_interface_init): 92 * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp: 93 (_WebKitDOMTestMediaQueryListListenerPrivate): 94 (WebKit::kit): 95 (WebKit::core): 96 (WebKit::wrapTestMediaQueryListListener): 97 (webkit_dom_test_media_query_list_listener_finalize): 98 (webkit_dom_test_media_query_list_listener_constructor): 99 (webkit_dom_test_media_query_list_listener_class_init): 100 (webkit_dom_test_media_query_list_listener_init): 101 * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp: 102 (_WebKitDOMTestNamedConstructorPrivate): 103 (WebKit::kit): 104 (WebKit::core): 105 (WebKit::wrapTestNamedConstructor): 106 (webkit_dom_test_named_constructor_finalize): 107 (webkit_dom_test_named_constructor_constructor): 108 (webkit_dom_test_named_constructor_class_init): 109 (webkit_dom_test_named_constructor_init): 110 * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp: 111 (WebKit::kit): 112 (WebKit::core): 113 (WebKit::wrapTestNode): 114 (webkit_dom_test_node_class_init): 115 * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: 116 (_WebKitDOMTestObjPrivate): 117 (WebKit::kit): 118 (WebKit::core): 119 (WebKit::wrapTestObj): 120 (webkit_dom_test_obj_finalize): 121 (webkit_dom_test_obj_constructor): 122 (webkit_dom_test_obj_class_init): 123 (webkit_dom_test_obj_init): 124 * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp: 125 (_WebKitDOMTestOverloadedConstructorsPrivate): 126 (WebKit::kit): 127 (WebKit::core): 128 (WebKit::wrapTestOverloadedConstructors): 129 (webkit_dom_test_overloaded_constructors_finalize): 130 (webkit_dom_test_overloaded_constructors_constructor): 131 (webkit_dom_test_overloaded_constructors_class_init): 132 (webkit_dom_test_overloaded_constructors_init): 133 * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp: 134 (_WebKitDOMTestSerializedScriptValueInterfacePrivate): 135 (WebKit::kit): 136 (WebKit::core): 137 (WebKit::wrapTestSerializedScriptValueInterface): 138 (webkit_dom_test_serialized_script_value_interface_finalize): 139 (webkit_dom_test_serialized_script_value_interface_constructor): 140 (webkit_dom_test_serialized_script_value_interface_class_init): 141 (webkit_dom_test_serialized_script_value_interface_init): 142 1 143 2012-12-09 Jon Lee <jonlee@apple.com> 2 144 -
trunk/Source/WebCore/bindings/gobject/WebKitDOMBinding.cpp
r133893 r137072 67 67 } 68 68 69 return DOMObjectCache::put(node, wrappedNode);69 return wrappedNode; 70 70 } 71 71 … … 98 98 wrappedElement = wrapElement(element); 99 99 100 return static_cast<WebKitDOMElement*>( DOMObjectCache::put(element, wrappedElement));100 return static_cast<WebKitDOMElement*>(wrappedElement); 101 101 } 102 102 … … 119 119 wrappedEvent = wrapEvent(event); 120 120 121 return static_cast<WebKitDOMEvent*>( DOMObjectCache::put(event, wrappedEvent));121 return static_cast<WebKitDOMEvent*>(wrappedEvent); 122 122 } 123 123 … … 136 136 } 137 137 138 return DOMObjectCache::put(target, wrappedTarget);138 return wrappedTarget; 139 139 } 140 140 … … 146 146 return static_cast<WebKitDOMEventTarget*>(ret); 147 147 148 return static_cast<WebKitDOMEventTarget*>( DOMObjectCache::put(obj, WebKit::wrapEventTarget(obj)));148 return static_cast<WebKitDOMEventTarget*>(wrapEventTarget(obj)); 149 149 } 150 150 -
trunk/Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm
r136505 r137072 79 79 } 80 80 81 sub GetParentImplClassName { 82 my $interface = shift; 83 84 return "Object" if @{$interface->parents} eq 0; 85 return $interface->parents(0); 86 } 87 81 88 # From String::CamelCase 0.01 82 89 sub camelize … … 541 548 my $clsCaps = substr(ClassNameToGObjectType($className), 12); 542 549 my $lowerCaseIfaceName = "webkit_dom_" . (FixUpDecamelizedName(decamelize($interfaceName))); 550 my $parentImplClassName = GetParentImplClassName($interface); 543 551 544 552 my $conditionGuardStart = ""; … … 639 647 $" = ""; 640 648 641 $implContent = << "EOF"; 649 if ($parentImplClassName eq "Object") { 650 $implContent = << "EOF"; 642 651 static void ${lowerCaseIfaceName}_finalize(GObject* object) 643 652 { 653 ${className}Private* priv = WEBKIT_DOM_${clsCaps}_GET_PRIVATE(object); 644 654 $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 } 655 WebKit::DOMObjectCache::forget(priv->coreObject.get()); 655 656 $conditionGuardEnd 656 657 priv->~${className}Private(); 657 658 G_OBJECT_CLASS(${lowerCaseIfaceName}_parent_class)->finalize(object); 658 659 } 659 660 660 661 EOF 661 push(@cBodyProperties, $implContent); 662 push(@cBodyProperties, $implContent); 663 } 662 664 663 665 if ($numProperties > 0) { … … 687 689 } 688 690 691 # Add a constructor implementation only for direct subclasses of Object to make sure 692 # that the WebCore wrapped object is added only once to the DOM cache. The DOM garbage 693 # collector works because Node is a direct subclass of Object and the version of 694 # DOMObjectCache::put() that receives a Node (which is the one setting the frame) is 695 # always called for DOM objects derived from Node. 696 if ($parentImplClassName eq "Object") { 697 $implContent = << "EOF"; 698 static GObject* ${lowerCaseIfaceName}_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) 699 { 700 GObject* object = G_OBJECT_CLASS(${lowerCaseIfaceName}_parent_class)->constructor(type, constructPropertiesCount, constructProperties); 701 $conditionGuardStart 702 ${className}Private* priv = WEBKIT_DOM_${clsCaps}_GET_PRIVATE(object); 703 priv->coreObject = static_cast<WebCore::${interfaceName}*>(WEBKIT_DOM_OBJECT(object)->coreObject); 704 WebKit::DOMObjectCache::put(priv->coreObject.get(), object); 705 $conditionGuardEnd 706 return object; 707 } 708 709 EOF 710 push(@cBodyProperties, $implContent); 711 } 712 689 713 $implContent = << "EOF"; 690 714 static void ${lowerCaseIfaceName}_class_init(${className}Class* requestClass) 691 715 { 692 GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass);693 gobjectClass->finalize = ${lowerCaseIfaceName}_finalize;694 716 EOF 695 717 push(@cBodyProperties, $implContent); 696 718 697 if (scalar @txtInstallEventListeners > 0) { 698 push(@cBodyProperties, " gobjectClass->constructed = ${lowerCaseIfaceName}_constructed;\n"); 699 } 700 701 if ($numProperties > 0) { 702 if (scalar @writeableProperties > 0) { 703 push(@cBodyProperties, " gobjectClass->set_property = ${lowerCaseIfaceName}_set_property;\n"); 704 } 705 push(@cBodyProperties, " gobjectClass->get_property = ${lowerCaseIfaceName}_get_property;\n"); 706 push(@cBodyProperties, "\n"); 707 push(@cBodyProperties, @txtInstallProps); 708 } 709 710 if (scalar @txtInstallSignals > 0) { 711 push(@cBodyProperties, "\n"); 712 push(@cBodyProperties, @txtInstallSignals); 719 if ($parentImplClassName eq "Object" || scalar @txtInstallEventListeners > 0 || $numProperties > 0) { 720 push(@cBodyProperties, " GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass);\n"); 721 722 if ($parentImplClassName eq "Object") { 723 push(@cBodyProperties, " g_type_class_add_private(gobjectClass, sizeof(${className}Private));\n"); 724 push(@cBodyProperties, " gobjectClass->constructor = ${lowerCaseIfaceName}_constructor;\n"); 725 push(@cBodyProperties, " gobjectClass->finalize = ${lowerCaseIfaceName}_finalize;\n"); 726 } 727 728 if (scalar @txtInstallEventListeners > 0) { 729 push(@cBodyProperties, " gobjectClass->constructed = ${lowerCaseIfaceName}_constructed;\n"); 730 } 731 732 if ($numProperties > 0) { 733 if (scalar @writeableProperties > 0) { 734 push(@cBodyProperties, " gobjectClass->set_property = ${lowerCaseIfaceName}_set_property;\n"); 735 } 736 push(@cBodyProperties, " gobjectClass->get_property = ${lowerCaseIfaceName}_get_property;\n"); 737 push(@cBodyProperties, "\n"); 738 push(@cBodyProperties, @txtInstallProps); 739 } 740 741 if (scalar @txtInstallSignals > 0) { 742 push(@cBodyProperties, "\n"); 743 push(@cBodyProperties, @txtInstallSignals); 744 } 713 745 } 714 746 $implContent = << "EOF"; … … 717 749 static void ${lowerCaseIfaceName}_init(${className}* request) 718 750 { 751 EOF 752 push(@cBodyProperties, $implContent); 753 754 if ($parentImplClassName eq "Object") { 755 $implContent = << "EOF"; 756 ${className}Private* priv = WEBKIT_DOM_${clsCaps}_GET_PRIVATE(request); 757 new (priv) ${className}Private(); 758 EOF 759 push(@cBodyProperties, $implContent); 760 } 761 $implContent = << "EOF"; 719 762 } 720 763 … … 1194 1237 my $clsCaps = uc(FixUpDecamelizedName(decamelize($interfaceName))); 1195 1238 my $lowerCaseIfaceName = "webkit_dom_" . FixUpDecamelizedName(decamelize($interfaceName)); 1239 my $parentImplClassName = GetParentImplClassName($interface); 1240 1241 # Add a private struct only for direct subclasses of Object so that we can use RefPtr 1242 # for the WebCore wrapped object and make sure we only increment the reference counter once. 1243 if ($parentImplClassName eq "Object") { 1244 my $conditionalString = $codeGenerator->GenerateConditionalString($interface); 1245 push(@cStructPriv, "#define WEBKIT_DOM_${clsCaps}_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_TYPE_DOM_${clsCaps}, ${className}Private)\n\n"); 1246 push(@cStructPriv, "typedef struct _${className}Private {\n"); 1247 push(@cStructPriv, "#if ${conditionalString}\n") if $conditionalString; 1248 push(@cStructPriv, " RefPtr<WebCore::${interfaceName}> coreObject;\n"); 1249 push(@cStructPriv, "#endif // ${conditionalString}\n") if $conditionalString; 1250 push(@cStructPriv, "} ${className}Private;\n\n"); 1251 } 1196 1252 1197 1253 $implContent = << "EOF"; … … 1201 1257 push(@cBodyProperties, $implContent); 1202 1258 1259 if (!UsesManualKitImplementation($interfaceName)) { 1260 $implContent = << "EOF"; 1261 ${className}* kit(WebCore::$interfaceName* obj) 1262 { 1263 g_return_val_if_fail(obj, 0); 1264 1265 if (gpointer ret = DOMObjectCache::get(obj)) 1266 return static_cast<${className}*>(ret); 1267 1268 return static_cast<${className}*>(g_object_new(WEBKIT_TYPE_DOM_${clsCaps}, "core-object", obj, NULL)); 1269 } 1270 1271 EOF 1272 push(@cBodyPriv, $implContent); 1273 } 1274 1203 1275 $implContent = << "EOF"; 1204 1276 WebCore::${interfaceName}* core(${className}* request) … … 1206 1278 g_return_val_if_fail(request, 0); 1207 1279 1208 WebCore::${interfaceName}* coreObject = static_cast<WebCore::${interfaceName}*>(WEBKIT_DOM_OBJECT(request)->coreObject); 1280 return static_cast<WebCore::${interfaceName}*>(WEBKIT_DOM_OBJECT(request)->coreObject); 1281 } 1282 1283 ${className}* wrap${interfaceName}(WebCore::${interfaceName}* coreObject) 1284 { 1209 1285 g_return_val_if_fail(coreObject, 0); 1210 1211 return coreObject; 1286 return WEBKIT_DOM_${clsCaps}(g_object_new(WEBKIT_TYPE_DOM_${clsCaps}, "core-object", coreObject, NULL)); 1212 1287 } 1213 1288 … … 1217 1292 $object->GenerateProperties($interfaceName, $interface); 1218 1293 $object->GenerateFunctions($interfaceName, $interface); 1219 1220 my $wrapMethod = << "EOF";1221 ${className}* wrap${interfaceName}(WebCore::${interfaceName}* coreObject)1222 {1223 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++ object1226 // in a C-allocated GObject structure. See the finalize() code for the matching deref().1227 coreObject->ref();1228 1229 return WEBKIT_DOM_${clsCaps}(g_object_new(WEBKIT_TYPE_DOM_${clsCaps}, "core-object", coreObject, NULL));1230 }1231 1232 EOF1233 push(@cBodyPriv, $wrapMethod);1234 1294 } 1235 1295 … … 1323 1383 1324 1384 $hdrIncludes{"webkit/${parentClassName}.h"} = 1; 1325 1326 if (!UsesManualKitImplementation($interfaceName)) {1327 my $converter = << "EOF";1328 ${className}* kit(WebCore::$interfaceName* obj)1329 {1330 g_return_val_if_fail(obj, 0);1331 1332 if (gpointer ret = DOMObjectCache::get(obj))1333 return static_cast<${className}*>(ret);1334 1335 return static_cast<${className}*>(DOMObjectCache::put(obj, WebKit::wrap${interfaceName}(obj)));1336 }1337 1338 EOF1339 push(@cBodyPriv, $converter);1340 }1341 1385 1342 1386 $object->GenerateHeader($interfaceName, $parentClassName); … … 1433 1477 print IMPL "#include <wtf/GetPtr.h>\n"; 1434 1478 print IMPL "#include <wtf/RefPtr.h>\n\n"; 1479 print IMPL @cStructPriv; 1435 1480 print IMPL "#if ${conditionalString}\n\n" if $conditionalString; 1436 1481 … … 1454 1499 @cBodyPriv = (); 1455 1500 @cBodyProperties = (); 1501 @cStructPriv = (); 1456 1502 } 1457 1503 -
trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp
r136505 r137072 43 43 return static_cast<WebKitDOMFloat64Array*>(ret); 44 44 45 return static_cast<WebKitDOMFloat64Array*>( DOMObjectCache::put(obj, WebKit::wrapFloat64Array(obj)));45 return static_cast<WebKitDOMFloat64Array*>(g_object_new(WEBKIT_TYPE_DOM_FLOAT64ARRAY, "core-object", obj, NULL)); 46 46 } 47 47 … … 50 50 g_return_val_if_fail(request, 0); 51 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; 52 return static_cast<WebCore::Float64Array*>(WEBKIT_DOM_OBJECT(request)->coreObject); 56 53 } 57 54 … … 59 56 { 60 57 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++ object63 // in a C-allocated GObject structure. See the finalize() code for the matching deref().64 coreObject->ref();65 66 58 return WEBKIT_DOM_FLOAT64ARRAY(g_object_new(WEBKIT_TYPE_DOM_FLOAT64ARRAY, "core-object", coreObject, NULL)); 67 59 } … … 71 63 G_DEFINE_TYPE(WebKitDOMFloat64Array, webkit_dom_float64array, WEBKIT_TYPE_DOM_ARRAY_BUFFER_VIEW) 72 64 73 static void webkit_dom_float64array_finalize(GObject* object)74 {75 76 WebKitDOMObject* domObject = WEBKIT_DOM_OBJECT(object);77 78 if (domObject->coreObject) {79 WebCore::Float64Array* coreObject = static_cast<WebCore::Float64Array*>(domObject->coreObject);80 81 WebKit::DOMObjectCache::forget(coreObject);82 coreObject->deref();83 84 domObject->coreObject = 0;85 }86 87 88 G_OBJECT_CLASS(webkit_dom_float64array_parent_class)->finalize(object);89 }90 91 65 static void webkit_dom_float64array_class_init(WebKitDOMFloat64ArrayClass* requestClass) 92 66 { 93 GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass);94 gobjectClass->finalize = webkit_dom_float64array_finalize;95 67 } 96 68 -
trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp
r136505 r137072 33 33 #include <wtf/RefPtr.h> 34 34 35 #define WEBKIT_DOM_TEST_ACTIVE_DOM_OBJECT_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_TYPE_DOM_TEST_ACTIVE_DOM_OBJECT, WebKitDOMTestActiveDOMObjectPrivate) 36 37 typedef struct _WebKitDOMTestActiveDOMObjectPrivate { 38 RefPtr<WebCore::TestActiveDOMObject> coreObject; 39 } WebKitDOMTestActiveDOMObjectPrivate; 40 35 41 namespace WebKit { 36 42 … … 42 48 return static_cast<WebKitDOMTestActiveDOMObject*>(ret); 43 49 44 return static_cast<WebKitDOMTestActiveDOMObject*>( DOMObjectCache::put(obj, WebKit::wrapTestActiveDOMObject(obj)));50 return static_cast<WebKitDOMTestActiveDOMObject*>(g_object_new(WEBKIT_TYPE_DOM_TEST_ACTIVE_DOM_OBJECT, "core-object", obj, NULL)); 45 51 } 46 52 … … 49 55 g_return_val_if_fail(request, 0); 50 56 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; 57 return static_cast<WebCore::TestActiveDOMObject*>(WEBKIT_DOM_OBJECT(request)->coreObject); 55 58 } 56 59 … … 58 61 { 59 62 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++ object62 // in a C-allocated GObject structure. See the finalize() code for the matching deref().63 coreObject->ref();64 65 63 return WEBKIT_DOM_TEST_ACTIVE_DOM_OBJECT(g_object_new(WEBKIT_TYPE_DOM_TEST_ACTIVE_DOM_OBJECT, "core-object", coreObject, NULL)); 66 64 } … … 77 75 static void webkit_dom_test_active_dom_object_finalize(GObject* object) 78 76 { 77 WebKitDOMTestActiveDOMObjectPrivate* priv = WEBKIT_DOM_TEST_ACTIVE_DOM_OBJECT_GET_PRIVATE(object); 79 78 80 WebKitDOMObject* domObject = WEBKIT_DOM_OBJECT(object); 81 82 if (domObject->coreObject) { 83 WebCore::TestActiveDOMObject* coreObject = static_cast<WebCore::TestActiveDOMObject*>(domObject->coreObject); 79 WebKit::DOMObjectCache::forget(priv->coreObject.get()); 84 80 85 WebKit::DOMObjectCache::forget(coreObject); 86 coreObject->deref(); 87 88 domObject->coreObject = 0; 89 } 90 91 81 priv->~WebKitDOMTestActiveDOMObjectPrivate(); 92 82 G_OBJECT_CLASS(webkit_dom_test_active_dom_object_parent_class)->finalize(object); 93 83 } … … 111 101 } 112 102 103 static GObject* webkit_dom_test_active_dom_object_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) 104 { 105 GObject* object = G_OBJECT_CLASS(webkit_dom_test_active_dom_object_parent_class)->constructor(type, constructPropertiesCount, constructProperties); 106 107 WebKitDOMTestActiveDOMObjectPrivate* priv = WEBKIT_DOM_TEST_ACTIVE_DOM_OBJECT_GET_PRIVATE(object); 108 priv->coreObject = static_cast<WebCore::TestActiveDOMObject*>(WEBKIT_DOM_OBJECT(object)->coreObject); 109 WebKit::DOMObjectCache::put(priv->coreObject.get(), object); 110 111 return object; 112 } 113 113 114 static void webkit_dom_test_active_dom_object_class_init(WebKitDOMTestActiveDOMObjectClass* requestClass) 114 115 { 115 116 GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); 117 g_type_class_add_private(gobjectClass, sizeof(WebKitDOMTestActiveDOMObjectPrivate)); 118 gobjectClass->constructor = webkit_dom_test_active_dom_object_constructor; 116 119 gobjectClass->finalize = webkit_dom_test_active_dom_object_finalize; 117 120 gobjectClass->get_property = webkit_dom_test_active_dom_object_get_property; … … 130 133 static void webkit_dom_test_active_dom_object_init(WebKitDOMTestActiveDOMObject* request) 131 134 { 135 WebKitDOMTestActiveDOMObjectPrivate* priv = WEBKIT_DOM_TEST_ACTIVE_DOM_OBJECT_GET_PRIVATE(request); 136 new (priv) WebKitDOMTestActiveDOMObjectPrivate(); 132 137 } 133 138 -
trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp
r136505 r137072 38 38 #include <wtf/RefPtr.h> 39 39 40 #define WEBKIT_DOM_TEST_CALLBACK_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_TYPE_DOM_TEST_CALLBACK, WebKitDOMTestCallbackPrivate) 41 42 typedef struct _WebKitDOMTestCallbackPrivate { 43 #if ENABLE(SQL_DATABASE) 44 RefPtr<WebCore::TestCallback> coreObject; 45 #endif // ENABLE(SQL_DATABASE) 46 } WebKitDOMTestCallbackPrivate; 47 40 48 #if ENABLE(SQL_DATABASE) 41 49 … … 49 57 return static_cast<WebKitDOMTestCallback*>(ret); 50 58 51 return static_cast<WebKitDOMTestCallback*>( DOMObjectCache::put(obj, WebKit::wrapTestCallback(obj)));59 return static_cast<WebKitDOMTestCallback*>(g_object_new(WEBKIT_TYPE_DOM_TEST_CALLBACK, "core-object", obj, NULL)); 52 60 } 53 61 … … 56 64 g_return_val_if_fail(request, 0); 57 65 58 WebCore::TestCallback* coreObject = static_cast<WebCore::TestCallback*>(WEBKIT_DOM_OBJECT(request)->coreObject); 66 return static_cast<WebCore::TestCallback*>(WEBKIT_DOM_OBJECT(request)->coreObject); 67 } 68 69 WebKitDOMTestCallback* wrapTestCallback(WebCore::TestCallback* coreObject) 70 { 59 71 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++ object69 // in a C-allocated GObject structure. See the finalize() code for the matching deref().70 coreObject->ref();71 72 72 return WEBKIT_DOM_TEST_CALLBACK(g_object_new(WEBKIT_TYPE_DOM_TEST_CALLBACK, "core-object", coreObject, NULL)); 73 73 } … … 81 81 static void webkit_dom_test_callback_finalize(GObject* object) 82 82 { 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 83 WebKitDOMTestCallbackPrivate* priv = WEBKIT_DOM_TEST_CALLBACK_GET_PRIVATE(object); 84 #if ENABLE(SQL_DATABASE) 85 WebKit::DOMObjectCache::forget(priv->coreObject.get()); 86 #endif // ENABLE(SQL_DATABASE) 87 priv->~WebKitDOMTestCallbackPrivate(); 96 88 G_OBJECT_CLASS(webkit_dom_test_callback_parent_class)->finalize(object); 97 89 } 98 90 91 static GObject* webkit_dom_test_callback_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) 92 { 93 GObject* object = G_OBJECT_CLASS(webkit_dom_test_callback_parent_class)->constructor(type, constructPropertiesCount, constructProperties); 94 #if ENABLE(SQL_DATABASE) 95 WebKitDOMTestCallbackPrivate* priv = WEBKIT_DOM_TEST_CALLBACK_GET_PRIVATE(object); 96 priv->coreObject = static_cast<WebCore::TestCallback*>(WEBKIT_DOM_OBJECT(object)->coreObject); 97 WebKit::DOMObjectCache::put(priv->coreObject.get(), object); 98 #endif // ENABLE(SQL_DATABASE) 99 return object; 100 } 101 99 102 static void webkit_dom_test_callback_class_init(WebKitDOMTestCallbackClass* requestClass) 100 103 { 101 104 GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); 105 g_type_class_add_private(gobjectClass, sizeof(WebKitDOMTestCallbackPrivate)); 106 gobjectClass->constructor = webkit_dom_test_callback_constructor; 102 107 gobjectClass->finalize = webkit_dom_test_callback_finalize; 103 108 } … … 105 110 static void webkit_dom_test_callback_init(WebKitDOMTestCallback* request) 106 111 { 112 WebKitDOMTestCallbackPrivate* priv = WEBKIT_DOM_TEST_CALLBACK_GET_PRIVATE(request); 113 new (priv) WebKitDOMTestCallbackPrivate(); 107 114 } 108 115 -
trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp
r136505 r137072 32 32 #include <wtf/RefPtr.h> 33 33 34 #define WEBKIT_DOM_TEST_CUSTOM_NAMED_GETTER_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_TYPE_DOM_TEST_CUSTOM_NAMED_GETTER, WebKitDOMTestCustomNamedGetterPrivate) 35 36 typedef struct _WebKitDOMTestCustomNamedGetterPrivate { 37 RefPtr<WebCore::TestCustomNamedGetter> coreObject; 38 } WebKitDOMTestCustomNamedGetterPrivate; 39 34 40 namespace WebKit { 35 41 … … 41 47 return static_cast<WebKitDOMTestCustomNamedGetter*>(ret); 42 48 43 return static_cast<WebKitDOMTestCustomNamedGetter*>( DOMObjectCache::put(obj, WebKit::wrapTestCustomNamedGetter(obj)));49 return static_cast<WebKitDOMTestCustomNamedGetter*>(g_object_new(WEBKIT_TYPE_DOM_TEST_CUSTOM_NAMED_GETTER, "core-object", obj, NULL)); 44 50 } 45 51 … … 48 54 g_return_val_if_fail(request, 0); 49 55 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; 56 return static_cast<WebCore::TestCustomNamedGetter*>(WEBKIT_DOM_OBJECT(request)->coreObject); 54 57 } 55 58 … … 57 60 { 58 61 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++ object61 // in a C-allocated GObject structure. See the finalize() code for the matching deref().62 coreObject->ref();63 64 62 return WEBKIT_DOM_TEST_CUSTOM_NAMED_GETTER(g_object_new(WEBKIT_TYPE_DOM_TEST_CUSTOM_NAMED_GETTER, "core-object", coreObject, NULL)); 65 63 } … … 71 69 static void webkit_dom_test_custom_named_getter_finalize(GObject* object) 72 70 { 71 WebKitDOMTestCustomNamedGetterPrivate* priv = WEBKIT_DOM_TEST_CUSTOM_NAMED_GETTER_GET_PRIVATE(object); 73 72 74 WebKitDOMObject* domObject = WEBKIT_DOM_OBJECT(object); 75 76 if (domObject->coreObject) { 77 WebCore::TestCustomNamedGetter* coreObject = static_cast<WebCore::TestCustomNamedGetter*>(domObject->coreObject); 73 WebKit::DOMObjectCache::forget(priv->coreObject.get()); 78 74 79 WebKit::DOMObjectCache::forget(coreObject); 80 coreObject->deref(); 75 priv->~WebKitDOMTestCustomNamedGetterPrivate(); 76 G_OBJECT_CLASS(webkit_dom_test_custom_named_getter_parent_class)->finalize(object); 77 } 81 78 82 domObject->coreObject = 0; 83 } 79 static GObject* webkit_dom_test_custom_named_getter_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) 80 { 81 GObject* object = G_OBJECT_CLASS(webkit_dom_test_custom_named_getter_parent_class)->constructor(type, constructPropertiesCount, constructProperties); 84 82 83 WebKitDOMTestCustomNamedGetterPrivate* priv = WEBKIT_DOM_TEST_CUSTOM_NAMED_GETTER_GET_PRIVATE(object); 84 priv->coreObject = static_cast<WebCore::TestCustomNamedGetter*>(WEBKIT_DOM_OBJECT(object)->coreObject); 85 WebKit::DOMObjectCache::put(priv->coreObject.get(), object); 85 86 86 G_OBJECT_CLASS(webkit_dom_test_custom_named_getter_parent_class)->finalize(object);87 return object; 87 88 } 88 89 … … 90 91 { 91 92 GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); 93 g_type_class_add_private(gobjectClass, sizeof(WebKitDOMTestCustomNamedGetterPrivate)); 94 gobjectClass->constructor = webkit_dom_test_custom_named_getter_constructor; 92 95 gobjectClass->finalize = webkit_dom_test_custom_named_getter_finalize; 93 96 } … … 95 98 static void webkit_dom_test_custom_named_getter_init(WebKitDOMTestCustomNamedGetter* request) 96 99 { 100 WebKitDOMTestCustomNamedGetterPrivate* priv = WEBKIT_DOM_TEST_CUSTOM_NAMED_GETTER_GET_PRIVATE(request); 101 new (priv) WebKitDOMTestCustomNamedGetterPrivate(); 97 102 } 98 103 -
trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp
r136505 r137072 32 32 #include <wtf/RefPtr.h> 33 33 34 #define WEBKIT_DOM_TEST_EVENT_CONSTRUCTOR_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_TYPE_DOM_TEST_EVENT_CONSTRUCTOR, WebKitDOMTestEventConstructorPrivate) 35 36 typedef struct _WebKitDOMTestEventConstructorPrivate { 37 RefPtr<WebCore::TestEventConstructor> coreObject; 38 } WebKitDOMTestEventConstructorPrivate; 39 34 40 namespace WebKit { 35 41 … … 41 47 return static_cast<WebKitDOMTestEventConstructor*>(ret); 42 48 43 return static_cast<WebKitDOMTestEventConstructor*>( DOMObjectCache::put(obj, WebKit::wrapTestEventConstructor(obj)));49 return static_cast<WebKitDOMTestEventConstructor*>(g_object_new(WEBKIT_TYPE_DOM_TEST_EVENT_CONSTRUCTOR, "core-object", obj, NULL)); 44 50 } 45 51 … … 48 54 g_return_val_if_fail(request, 0); 49 55 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; 56 return static_cast<WebCore::TestEventConstructor*>(WEBKIT_DOM_OBJECT(request)->coreObject); 54 57 } 55 58 … … 57 60 { 58 61 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++ object61 // in a C-allocated GObject structure. See the finalize() code for the matching deref().62 coreObject->ref();63 64 62 return WEBKIT_DOM_TEST_EVENT_CONSTRUCTOR(g_object_new(WEBKIT_TYPE_DOM_TEST_EVENT_CONSTRUCTOR, "core-object", coreObject, NULL)); 65 63 } … … 77 75 static void webkit_dom_test_event_constructor_finalize(GObject* object) 78 76 { 77 WebKitDOMTestEventConstructorPrivate* priv = WEBKIT_DOM_TEST_EVENT_CONSTRUCTOR_GET_PRIVATE(object); 79 78 80 WebKitDOMObject* domObject = WEBKIT_DOM_OBJECT(object); 81 82 if (domObject->coreObject) { 83 WebCore::TestEventConstructor* coreObject = static_cast<WebCore::TestEventConstructor*>(domObject->coreObject); 79 WebKit::DOMObjectCache::forget(priv->coreObject.get()); 84 80 85 WebKit::DOMObjectCache::forget(coreObject); 86 coreObject->deref(); 87 88 domObject->coreObject = 0; 89 } 90 91 81 priv->~WebKitDOMTestEventConstructorPrivate(); 92 82 G_OBJECT_CLASS(webkit_dom_test_event_constructor_parent_class)->finalize(object); 93 83 } … … 115 105 } 116 106 107 static GObject* webkit_dom_test_event_constructor_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) 108 { 109 GObject* object = G_OBJECT_CLASS(webkit_dom_test_event_constructor_parent_class)->constructor(type, constructPropertiesCount, constructProperties); 110 111 WebKitDOMTestEventConstructorPrivate* priv = WEBKIT_DOM_TEST_EVENT_CONSTRUCTOR_GET_PRIVATE(object); 112 priv->coreObject = static_cast<WebCore::TestEventConstructor*>(WEBKIT_DOM_OBJECT(object)->coreObject); 113 WebKit::DOMObjectCache::put(priv->coreObject.get(), object); 114 115 return object; 116 } 117 117 118 static void webkit_dom_test_event_constructor_class_init(WebKitDOMTestEventConstructorClass* requestClass) 118 119 { 119 120 GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); 121 g_type_class_add_private(gobjectClass, sizeof(WebKitDOMTestEventConstructorPrivate)); 122 gobjectClass->constructor = webkit_dom_test_event_constructor_constructor; 120 123 gobjectClass->finalize = webkit_dom_test_event_constructor_finalize; 121 124 gobjectClass->get_property = webkit_dom_test_event_constructor_get_property; … … 139 142 static void webkit_dom_test_event_constructor_init(WebKitDOMTestEventConstructor* request) 140 143 { 144 WebKitDOMTestEventConstructorPrivate* priv = WEBKIT_DOM_TEST_EVENT_CONSTRUCTOR_GET_PRIVATE(request); 145 new (priv) WebKitDOMTestEventConstructorPrivate(); 141 146 } 142 147 -
trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp
r136505 r137072 36 36 #include <wtf/RefPtr.h> 37 37 38 #define WEBKIT_DOM_TEST_EVENT_TARGET_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_TYPE_DOM_TEST_EVENT_TARGET, WebKitDOMTestEventTargetPrivate) 39 40 typedef struct _WebKitDOMTestEventTargetPrivate { 41 RefPtr<WebCore::TestEventTarget> coreObject; 42 } WebKitDOMTestEventTargetPrivate; 43 38 44 namespace WebKit { 39 45 … … 45 51 return static_cast<WebKitDOMTestEventTarget*>(ret); 46 52 47 return static_cast<WebKitDOMTestEventTarget*>( DOMObjectCache::put(obj, WebKit::wrapTestEventTarget(obj)));53 return static_cast<WebKitDOMTestEventTarget*>(g_object_new(WEBKIT_TYPE_DOM_TEST_EVENT_TARGET, "core-object", obj, NULL)); 48 54 } 49 55 … … 52 58 g_return_val_if_fail(request, 0); 53 59 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; 60 return static_cast<WebCore::TestEventTarget*>(WEBKIT_DOM_OBJECT(request)->coreObject); 58 61 } 59 62 … … 61 64 { 62 65 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++ object65 // in a C-allocated GObject structure. See the finalize() code for the matching deref().66 coreObject->ref();67 68 66 return WEBKIT_DOM_TEST_EVENT_TARGET(g_object_new(WEBKIT_TYPE_DOM_TEST_EVENT_TARGET, "core-object", coreObject, NULL)); 69 67 } … … 107 105 static void webkit_dom_test_event_target_finalize(GObject* object) 108 106 { 107 WebKitDOMTestEventTargetPrivate* priv = WEBKIT_DOM_TEST_EVENT_TARGET_GET_PRIVATE(object); 109 108 110 WebKitDOMObject* domObject = WEBKIT_DOM_OBJECT(object); 111 112 if (domObject->coreObject) { 113 WebCore::TestEventTarget* coreObject = static_cast<WebCore::TestEventTarget*>(domObject->coreObject); 109 WebKit::DOMObjectCache::forget(priv->coreObject.get()); 114 110 115 WebKit::DOMObjectCache::forget(coreObject); 116 coreObject->deref(); 111 priv->~WebKitDOMTestEventTargetPrivate(); 112 G_OBJECT_CLASS(webkit_dom_test_event_target_parent_class)->finalize(object); 113 } 117 114 118 domObject->coreObject = 0; 119 } 115 static GObject* webkit_dom_test_event_target_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) 116 { 117 GObject* object = G_OBJECT_CLASS(webkit_dom_test_event_target_parent_class)->constructor(type, constructPropertiesCount, constructProperties); 120 118 119 WebKitDOMTestEventTargetPrivate* priv = WEBKIT_DOM_TEST_EVENT_TARGET_GET_PRIVATE(object); 120 priv->coreObject = static_cast<WebCore::TestEventTarget*>(WEBKIT_DOM_OBJECT(object)->coreObject); 121 WebKit::DOMObjectCache::put(priv->coreObject.get(), object); 121 122 122 G_OBJECT_CLASS(webkit_dom_test_event_target_parent_class)->finalize(object);123 return object; 123 124 } 124 125 … … 126 127 { 127 128 GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); 129 g_type_class_add_private(gobjectClass, sizeof(WebKitDOMTestEventTargetPrivate)); 130 gobjectClass->constructor = webkit_dom_test_event_target_constructor; 128 131 gobjectClass->finalize = webkit_dom_test_event_target_finalize; 129 132 } … … 131 134 static void webkit_dom_test_event_target_init(WebKitDOMTestEventTarget* request) 132 135 { 136 WebKitDOMTestEventTargetPrivate* priv = WEBKIT_DOM_TEST_EVENT_TARGET_GET_PRIVATE(request); 137 new (priv) WebKitDOMTestEventTargetPrivate(); 133 138 } 134 139 -
trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestException.cpp
r136505 r137072 32 32 #include <wtf/RefPtr.h> 33 33 34 #define WEBKIT_DOM_TEST_EXCEPTION_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_TYPE_DOM_TEST_EXCEPTION, WebKitDOMTestExceptionPrivate) 35 36 typedef struct _WebKitDOMTestExceptionPrivate { 37 RefPtr<WebCore::TestException> coreObject; 38 } WebKitDOMTestExceptionPrivate; 39 34 40 namespace WebKit { 35 41 … … 41 47 return static_cast<WebKitDOMTestException*>(ret); 42 48 43 return static_cast<WebKitDOMTestException*>( DOMObjectCache::put(obj, WebKit::wrapTestException(obj)));49 return static_cast<WebKitDOMTestException*>(g_object_new(WEBKIT_TYPE_DOM_TEST_EXCEPTION, "core-object", obj, NULL)); 44 50 } 45 51 … … 48 54 g_return_val_if_fail(request, 0); 49 55 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; 56 return static_cast<WebCore::TestException*>(WEBKIT_DOM_OBJECT(request)->coreObject); 54 57 } 55 58 … … 57 60 { 58 61 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++ object61 // in a C-allocated GObject structure. See the finalize() code for the matching deref().62 coreObject->ref();63 64 62 return WEBKIT_DOM_TEST_EXCEPTION(g_object_new(WEBKIT_TYPE_DOM_TEST_EXCEPTION, "core-object", coreObject, NULL)); 65 63 } … … 76 74 static void webkit_dom_test_exception_finalize(GObject* object) 77 75 { 76 WebKitDOMTestExceptionPrivate* priv = WEBKIT_DOM_TEST_EXCEPTION_GET_PRIVATE(object); 78 77 79 WebKitDOMObject* domObject = WEBKIT_DOM_OBJECT(object); 80 81 if (domObject->coreObject) { 82 WebCore::TestException* coreObject = static_cast<WebCore::TestException*>(domObject->coreObject); 78 WebKit::DOMObjectCache::forget(priv->coreObject.get()); 83 79 84 WebKit::DOMObjectCache::forget(coreObject); 85 coreObject->deref(); 86 87 domObject->coreObject = 0; 88 } 89 90 80 priv->~WebKitDOMTestExceptionPrivate(); 91 81 G_OBJECT_CLASS(webkit_dom_test_exception_parent_class)->finalize(object); 92 82 } … … 110 100 } 111 101 102 static GObject* webkit_dom_test_exception_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) 103 { 104 GObject* object = G_OBJECT_CLASS(webkit_dom_test_exception_parent_class)->constructor(type, constructPropertiesCount, constructProperties); 105 106 WebKitDOMTestExceptionPrivate* priv = WEBKIT_DOM_TEST_EXCEPTION_GET_PRIVATE(object); 107 priv->coreObject = static_cast<WebCore::TestException*>(WEBKIT_DOM_OBJECT(object)->coreObject); 108 WebKit::DOMObjectCache::put(priv->coreObject.get(), object); 109 110 return object; 111 } 112 112 113 static void webkit_dom_test_exception_class_init(WebKitDOMTestExceptionClass* requestClass) 113 114 { 114 115 GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); 116 g_type_class_add_private(gobjectClass, sizeof(WebKitDOMTestExceptionPrivate)); 117 gobjectClass->constructor = webkit_dom_test_exception_constructor; 115 118 gobjectClass->finalize = webkit_dom_test_exception_finalize; 116 119 gobjectClass->get_property = webkit_dom_test_exception_get_property; … … 127 130 static void webkit_dom_test_exception_init(WebKitDOMTestException* request) 128 131 { 132 WebKitDOMTestExceptionPrivate* priv = WEBKIT_DOM_TEST_EXCEPTION_GET_PRIVATE(request); 133 new (priv) WebKitDOMTestExceptionPrivate(); 129 134 } 130 135 -
trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp
r136505 r137072 35 35 #include <wtf/RefPtr.h> 36 36 37 #define WEBKIT_DOM_TEST_INTERFACE_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_TYPE_DOM_TEST_INTERFACE, WebKitDOMTestInterfacePrivate) 38 39 typedef struct _WebKitDOMTestInterfacePrivate { 40 #if ENABLE(Condition1) || ENABLE(Condition2) 41 RefPtr<WebCore::TestInterface> coreObject; 42 #endif // ENABLE(Condition1) || ENABLE(Condition2) 43 } WebKitDOMTestInterfacePrivate; 44 37 45 #if ENABLE(Condition1) || ENABLE(Condition2) 38 46 … … 46 54 return static_cast<WebKitDOMTestInterface*>(ret); 47 55 48 return static_cast<WebKitDOMTestInterface*>( DOMObjectCache::put(obj, WebKit::wrapTestInterface(obj)));56 return static_cast<WebKitDOMTestInterface*>(g_object_new(WEBKIT_TYPE_DOM_TEST_INTERFACE, "core-object", obj, NULL)); 49 57 } 50 58 … … 53 61 g_return_val_if_fail(request, 0); 54 62 55 WebCore::TestInterface* coreObject = static_cast<WebCore::TestInterface*>(WEBKIT_DOM_OBJECT(request)->coreObject); 63 return static_cast<WebCore::TestInterface*>(WEBKIT_DOM_OBJECT(request)->coreObject); 64 } 65 66 WebKitDOMTestInterface* wrapTestInterface(WebCore::TestInterface* coreObject) 67 { 56 68 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++ object66 // in a C-allocated GObject structure. See the finalize() code for the matching deref().67 coreObject->ref();68 69 69 return WEBKIT_DOM_TEST_INTERFACE(g_object_new(WEBKIT_TYPE_DOM_TEST_INTERFACE, "core-object", coreObject, NULL)); 70 70 } … … 85 85 static void webkit_dom_test_interface_finalize(GObject* object) 86 86 { 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 87 WebKitDOMTestInterfacePrivate* priv = WEBKIT_DOM_TEST_INTERFACE_GET_PRIVATE(object); 88 #if ENABLE(Condition1) || ENABLE(Condition2) 89 WebKit::DOMObjectCache::forget(priv->coreObject.get()); 90 #endif // ENABLE(Condition1) || ENABLE(Condition2) 91 priv->~WebKitDOMTestInterfacePrivate(); 100 92 G_OBJECT_CLASS(webkit_dom_test_interface_parent_class)->finalize(object); 101 93 } … … 186 178 } 187 179 180 static GObject* webkit_dom_test_interface_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) 181 { 182 GObject* object = G_OBJECT_CLASS(webkit_dom_test_interface_parent_class)->constructor(type, constructPropertiesCount, constructProperties); 183 #if ENABLE(Condition1) || ENABLE(Condition2) 184 WebKitDOMTestInterfacePrivate* priv = WEBKIT_DOM_TEST_INTERFACE_GET_PRIVATE(object); 185 priv->coreObject = static_cast<WebCore::TestInterface*>(WEBKIT_DOM_OBJECT(object)->coreObject); 186 WebKit::DOMObjectCache::put(priv->coreObject.get(), object); 187 #endif // ENABLE(Condition1) || ENABLE(Condition2) 188 return object; 189 } 190 188 191 static void webkit_dom_test_interface_class_init(WebKitDOMTestInterfaceClass* requestClass) 189 192 { 190 193 GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); 194 g_type_class_add_private(gobjectClass, sizeof(WebKitDOMTestInterfacePrivate)); 195 gobjectClass->constructor = webkit_dom_test_interface_constructor; 191 196 gobjectClass->finalize = webkit_dom_test_interface_finalize; 192 197 gobjectClass->set_property = webkit_dom_test_interface_set_property; … … 218 223 static void webkit_dom_test_interface_init(WebKitDOMTestInterface* request) 219 224 { 225 WebKitDOMTestInterfacePrivate* priv = WEBKIT_DOM_TEST_INTERFACE_GET_PRIVATE(request); 226 new (priv) WebKitDOMTestInterfacePrivate(); 220 227 } 221 228 -
trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp
r136505 r137072 32 32 #include <wtf/RefPtr.h> 33 33 34 #define WEBKIT_DOM_TEST_MEDIA_QUERY_LIST_LISTENER_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_TYPE_DOM_TEST_MEDIA_QUERY_LIST_LISTENER, WebKitDOMTestMediaQueryListListenerPrivate) 35 36 typedef struct _WebKitDOMTestMediaQueryListListenerPrivate { 37 RefPtr<WebCore::TestMediaQueryListListener> coreObject; 38 } WebKitDOMTestMediaQueryListListenerPrivate; 39 34 40 namespace WebKit { 35 41 … … 41 47 return static_cast<WebKitDOMTestMediaQueryListListener*>(ret); 42 48 43 return static_cast<WebKitDOMTestMediaQueryListListener*>( DOMObjectCache::put(obj, WebKit::wrapTestMediaQueryListListener(obj)));49 return static_cast<WebKitDOMTestMediaQueryListListener*>(g_object_new(WEBKIT_TYPE_DOM_TEST_MEDIA_QUERY_LIST_LISTENER, "core-object", obj, NULL)); 44 50 } 45 51 … … 48 54 g_return_val_if_fail(request, 0); 49 55 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; 56 return static_cast<WebCore::TestMediaQueryListListener*>(WEBKIT_DOM_OBJECT(request)->coreObject); 54 57 } 55 58 … … 57 60 { 58 61 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++ object61 // in a C-allocated GObject structure. See the finalize() code for the matching deref().62 coreObject->ref();63 64 62 return WEBKIT_DOM_TEST_MEDIA_QUERY_LIST_LISTENER(g_object_new(WEBKIT_TYPE_DOM_TEST_MEDIA_QUERY_LIST_LISTENER, "core-object", coreObject, NULL)); 65 63 } … … 71 69 static void webkit_dom_test_media_query_list_listener_finalize(GObject* object) 72 70 { 71 WebKitDOMTestMediaQueryListListenerPrivate* priv = WEBKIT_DOM_TEST_MEDIA_QUERY_LIST_LISTENER_GET_PRIVATE(object); 73 72 74 WebKitDOMObject* domObject = WEBKIT_DOM_OBJECT(object); 75 76 if (domObject->coreObject) { 77 WebCore::TestMediaQueryListListener* coreObject = static_cast<WebCore::TestMediaQueryListListener*>(domObject->coreObject); 73 WebKit::DOMObjectCache::forget(priv->coreObject.get()); 78 74 79 WebKit::DOMObjectCache::forget(coreObject); 80 coreObject->deref(); 75 priv->~WebKitDOMTestMediaQueryListListenerPrivate(); 76 G_OBJECT_CLASS(webkit_dom_test_media_query_list_listener_parent_class)->finalize(object); 77 } 81 78 82 domObject->coreObject = 0; 83 } 79 static GObject* webkit_dom_test_media_query_list_listener_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) 80 { 81 GObject* object = G_OBJECT_CLASS(webkit_dom_test_media_query_list_listener_parent_class)->constructor(type, constructPropertiesCount, constructProperties); 84 82 83 WebKitDOMTestMediaQueryListListenerPrivate* priv = WEBKIT_DOM_TEST_MEDIA_QUERY_LIST_LISTENER_GET_PRIVATE(object); 84 priv->coreObject = static_cast<WebCore::TestMediaQueryListListener*>(WEBKIT_DOM_OBJECT(object)->coreObject); 85 WebKit::DOMObjectCache::put(priv->coreObject.get(), object); 85 86 86 G_OBJECT_CLASS(webkit_dom_test_media_query_list_listener_parent_class)->finalize(object);87 return object; 87 88 } 88 89 … … 90 91 { 91 92 GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); 93 g_type_class_add_private(gobjectClass, sizeof(WebKitDOMTestMediaQueryListListenerPrivate)); 94 gobjectClass->constructor = webkit_dom_test_media_query_list_listener_constructor; 92 95 gobjectClass->finalize = webkit_dom_test_media_query_list_listener_finalize; 93 96 } … … 95 98 static void webkit_dom_test_media_query_list_listener_init(WebKitDOMTestMediaQueryListListener* request) 96 99 { 100 WebKitDOMTestMediaQueryListListenerPrivate* priv = WEBKIT_DOM_TEST_MEDIA_QUERY_LIST_LISTENER_GET_PRIVATE(request); 101 new (priv) WebKitDOMTestMediaQueryListListenerPrivate(); 97 102 } 98 103 -
trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp
r136505 r137072 32 32 #include <wtf/RefPtr.h> 33 33 34 #define WEBKIT_DOM_TEST_NAMED_CONSTRUCTOR_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_TYPE_DOM_TEST_NAMED_CONSTRUCTOR, WebKitDOMTestNamedConstructorPrivate) 35 36 typedef struct _WebKitDOMTestNamedConstructorPrivate { 37 RefPtr<WebCore::TestNamedConstructor> coreObject; 38 } WebKitDOMTestNamedConstructorPrivate; 39 34 40 namespace WebKit { 35 41 … … 41 47 return static_cast<WebKitDOMTestNamedConstructor*>(ret); 42 48 43 return static_cast<WebKitDOMTestNamedConstructor*>( DOMObjectCache::put(obj, WebKit::wrapTestNamedConstructor(obj)));49 return static_cast<WebKitDOMTestNamedConstructor*>(g_object_new(WEBKIT_TYPE_DOM_TEST_NAMED_CONSTRUCTOR, "core-object", obj, NULL)); 44 50 } 45 51 … … 48 54 g_return_val_if_fail(request, 0); 49 55 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; 56 return static_cast<WebCore::TestNamedConstructor*>(WEBKIT_DOM_OBJECT(request)->coreObject); 54 57 } 55 58 … … 57 60 { 58 61 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++ object61 // in a C-allocated GObject structure. See the finalize() code for the matching deref().62 coreObject->ref();63 64 62 return WEBKIT_DOM_TEST_NAMED_CONSTRUCTOR(g_object_new(WEBKIT_TYPE_DOM_TEST_NAMED_CONSTRUCTOR, "core-object", coreObject, NULL)); 65 63 } … … 71 69 static void webkit_dom_test_named_constructor_finalize(GObject* object) 72 70 { 71 WebKitDOMTestNamedConstructorPrivate* priv = WEBKIT_DOM_TEST_NAMED_CONSTRUCTOR_GET_PRIVATE(object); 73 72 74 WebKitDOMObject* domObject = WEBKIT_DOM_OBJECT(object); 75 76 if (domObject->coreObject) { 77 WebCore::TestNamedConstructor* coreObject = static_cast<WebCore::TestNamedConstructor*>(domObject->coreObject); 73 WebKit::DOMObjectCache::forget(priv->coreObject.get()); 78 74 79 WebKit::DOMObjectCache::forget(coreObject); 80 coreObject->deref(); 75 priv->~WebKitDOMTestNamedConstructorPrivate(); 76 G_OBJECT_CLASS(webkit_dom_test_named_constructor_parent_class)->finalize(object); 77 } 81 78 82 domObject->coreObject = 0; 83 } 79 static GObject* webkit_dom_test_named_constructor_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) 80 { 81 GObject* object = G_OBJECT_CLASS(webkit_dom_test_named_constructor_parent_class)->constructor(type, constructPropertiesCount, constructProperties); 84 82 83 WebKitDOMTestNamedConstructorPrivate* priv = WEBKIT_DOM_TEST_NAMED_CONSTRUCTOR_GET_PRIVATE(object); 84 priv->coreObject = static_cast<WebCore::TestNamedConstructor*>(WEBKIT_DOM_OBJECT(object)->coreObject); 85 WebKit::DOMObjectCache::put(priv->coreObject.get(), object); 85 86 86 G_OBJECT_CLASS(webkit_dom_test_named_constructor_parent_class)->finalize(object);87 return object; 87 88 } 88 89 … … 90 91 { 91 92 GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); 93 g_type_class_add_private(gobjectClass, sizeof(WebKitDOMTestNamedConstructorPrivate)); 94 gobjectClass->constructor = webkit_dom_test_named_constructor_constructor; 92 95 gobjectClass->finalize = webkit_dom_test_named_constructor_finalize; 93 96 } … … 95 98 static void webkit_dom_test_named_constructor_init(WebKitDOMTestNamedConstructor* request) 96 99 { 100 WebKitDOMTestNamedConstructorPrivate* priv = WEBKIT_DOM_TEST_NAMED_CONSTRUCTOR_GET_PRIVATE(request); 101 new (priv) WebKitDOMTestNamedConstructorPrivate(); 97 102 } 98 103 -
trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestNode.cpp
r136505 r137072 44 44 return static_cast<WebKitDOMTestNode*>(ret); 45 45 46 return static_cast<WebKitDOMTestNode*>( DOMObjectCache::put(obj, WebKit::wrapTestNode(obj)));46 return static_cast<WebKitDOMTestNode*>(g_object_new(WEBKIT_TYPE_DOM_TEST_NODE, "core-object", obj, NULL)); 47 47 } 48 48 … … 51 51 g_return_val_if_fail(request, 0); 52 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; 53 return static_cast<WebCore::TestNode*>(WEBKIT_DOM_OBJECT(request)->coreObject); 57 54 } 58 55 … … 60 57 { 61 58 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++ object64 // in a C-allocated GObject structure. See the finalize() code for the matching deref().65 coreObject->ref();66 67 59 return WEBKIT_DOM_TEST_NODE(g_object_new(WEBKIT_TYPE_DOM_TEST_NODE, "core-object", coreObject, NULL)); 68 60 } … … 104 96 G_DEFINE_TYPE_WITH_CODE(WebKitDOMTestNode, webkit_dom_test_node, WEBKIT_TYPE_DOM_NODE, G_IMPLEMENT_INTERFACE(WEBKIT_TYPE_DOM_EVENT_TARGET, webkit_dom_event_target_init)) 105 97 106 static void webkit_dom_test_node_finalize(GObject* object)107 {108 109 WebKitDOMObject* domObject = WEBKIT_DOM_OBJECT(object);110 111 if (domObject->coreObject) {112 WebCore::TestNode* coreObject = static_cast<WebCore::TestNode*>(domObject->coreObject);113 114 WebKit::DOMObjectCache::forget(coreObject);115 coreObject->deref();116 117 domObject->coreObject = 0;118 }119 120 121 G_OBJECT_CLASS(webkit_dom_test_node_parent_class)->finalize(object);122 }123 124 98 static void webkit_dom_test_node_class_init(WebKitDOMTestNodeClass* requestClass) 125 99 { 126 GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass);127 gobjectClass->finalize = webkit_dom_test_node_finalize;128 100 } 129 101 -
trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp
r136505 r137072 45 45 #include <wtf/RefPtr.h> 46 46 47 #define WEBKIT_DOM_TEST_OBJ_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_TYPE_DOM_TEST_OBJ, WebKitDOMTestObjPrivate) 48 49 typedef struct _WebKitDOMTestObjPrivate { 50 RefPtr<WebCore::TestObj> coreObject; 51 } WebKitDOMTestObjPrivate; 52 47 53 namespace WebKit { 48 54 … … 54 60 return static_cast<WebKitDOMTestObj*>(ret); 55 61 56 return static_cast<WebKitDOMTestObj*>( DOMObjectCache::put(obj, WebKit::wrapTestObj(obj)));62 return static_cast<WebKitDOMTestObj*>(g_object_new(WEBKIT_TYPE_DOM_TEST_OBJ, "core-object", obj, NULL)); 57 63 } 58 64 … … 61 67 g_return_val_if_fail(request, 0); 62 68 63 WebCore::TestObj* coreObject = static_cast<WebCore::TestObj*>(WEBKIT_DOM_OBJECT(request)->coreObject); 69 return static_cast<WebCore::TestObj*>(WEBKIT_DOM_OBJECT(request)->coreObject); 70 } 71 72 WebKitDOMTestObj* wrapTestObj(WebCore::TestObj* coreObject) 73 { 64 74 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++ object74 // in a C-allocated GObject structure. See the finalize() code for the matching deref().75 coreObject->ref();76 77 75 return WEBKIT_DOM_TEST_OBJ(g_object_new(WEBKIT_TYPE_DOM_TEST_OBJ, "core-object", coreObject, NULL)); 78 76 } … … 134 132 static void webkit_dom_test_obj_finalize(GObject* object) 135 133 { 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 134 WebKitDOMTestObjPrivate* priv = WEBKIT_DOM_TEST_OBJ_GET_PRIVATE(object); 135 136 WebKit::DOMObjectCache::forget(priv->coreObject.get()); 137 138 priv->~WebKitDOMTestObjPrivate(); 149 139 G_OBJECT_CLASS(webkit_dom_test_obj_parent_class)->finalize(object); 150 140 } … … 519 509 } 520 510 511 static GObject* webkit_dom_test_obj_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) 512 { 513 GObject* object = G_OBJECT_CLASS(webkit_dom_test_obj_parent_class)->constructor(type, constructPropertiesCount, constructProperties); 514 515 WebKitDOMTestObjPrivate* priv = WEBKIT_DOM_TEST_OBJ_GET_PRIVATE(object); 516 priv->coreObject = static_cast<WebCore::TestObj*>(WEBKIT_DOM_OBJECT(object)->coreObject); 517 WebKit::DOMObjectCache::put(priv->coreObject.get(), object); 518 519 return object; 520 } 521 521 522 static void webkit_dom_test_obj_class_init(WebKitDOMTestObjClass* requestClass) 522 523 { 523 524 GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); 525 g_type_class_add_private(gobjectClass, sizeof(WebKitDOMTestObjPrivate)); 526 gobjectClass->constructor = webkit_dom_test_obj_constructor; 524 527 gobjectClass->finalize = webkit_dom_test_obj_finalize; 525 528 gobjectClass->set_property = webkit_dom_test_obj_set_property; … … 892 895 static void webkit_dom_test_obj_init(WebKitDOMTestObj* request) 893 896 { 897 WebKitDOMTestObjPrivate* priv = WEBKIT_DOM_TEST_OBJ_GET_PRIVATE(request); 898 new (priv) WebKitDOMTestObjPrivate(); 894 899 } 895 900 -
trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp
r136505 r137072 32 32 #include <wtf/RefPtr.h> 33 33 34 #define WEBKIT_DOM_TEST_OVERLOADED_CONSTRUCTORS_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_TYPE_DOM_TEST_OVERLOADED_CONSTRUCTORS, WebKitDOMTestOverloadedConstructorsPrivate) 35 36 typedef struct _WebKitDOMTestOverloadedConstructorsPrivate { 37 RefPtr<WebCore::TestOverloadedConstructors> coreObject; 38 } WebKitDOMTestOverloadedConstructorsPrivate; 39 34 40 namespace WebKit { 35 41 … … 41 47 return static_cast<WebKitDOMTestOverloadedConstructors*>(ret); 42 48 43 return static_cast<WebKitDOMTestOverloadedConstructors*>( DOMObjectCache::put(obj, WebKit::wrapTestOverloadedConstructors(obj)));49 return static_cast<WebKitDOMTestOverloadedConstructors*>(g_object_new(WEBKIT_TYPE_DOM_TEST_OVERLOADED_CONSTRUCTORS, "core-object", obj, NULL)); 44 50 } 45 51 … … 48 54 g_return_val_if_fail(request, 0); 49 55 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; 56 return static_cast<WebCore::TestOverloadedConstructors*>(WEBKIT_DOM_OBJECT(request)->coreObject); 54 57 } 55 58 … … 57 60 { 58 61 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++ object61 // in a C-allocated GObject structure. See the finalize() code for the matching deref().62 coreObject->ref();63 64 62 return WEBKIT_DOM_TEST_OVERLOADED_CONSTRUCTORS(g_object_new(WEBKIT_TYPE_DOM_TEST_OVERLOADED_CONSTRUCTORS, "core-object", coreObject, NULL)); 65 63 } … … 71 69 static void webkit_dom_test_overloaded_constructors_finalize(GObject* object) 72 70 { 71 WebKitDOMTestOverloadedConstructorsPrivate* priv = WEBKIT_DOM_TEST_OVERLOADED_CONSTRUCTORS_GET_PRIVATE(object); 73 72 74 WebKitDOMObject* domObject = WEBKIT_DOM_OBJECT(object); 75 76 if (domObject->coreObject) { 77 WebCore::TestOverloadedConstructors* coreObject = static_cast<WebCore::TestOverloadedConstructors*>(domObject->coreObject); 73 WebKit::DOMObjectCache::forget(priv->coreObject.get()); 78 74 79 WebKit::DOMObjectCache::forget(coreObject); 80 coreObject->deref(); 75 priv->~WebKitDOMTestOverloadedConstructorsPrivate(); 76 G_OBJECT_CLASS(webkit_dom_test_overloaded_constructors_parent_class)->finalize(object); 77 } 81 78 82 domObject->coreObject = 0; 83 } 79 static GObject* webkit_dom_test_overloaded_constructors_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) 80 { 81 GObject* object = G_OBJECT_CLASS(webkit_dom_test_overloaded_constructors_parent_class)->constructor(type, constructPropertiesCount, constructProperties); 84 82 83 WebKitDOMTestOverloadedConstructorsPrivate* priv = WEBKIT_DOM_TEST_OVERLOADED_CONSTRUCTORS_GET_PRIVATE(object); 84 priv->coreObject = static_cast<WebCore::TestOverloadedConstructors*>(WEBKIT_DOM_OBJECT(object)->coreObject); 85 WebKit::DOMObjectCache::put(priv->coreObject.get(), object); 85 86 86 G_OBJECT_CLASS(webkit_dom_test_overloaded_constructors_parent_class)->finalize(object);87 return object; 87 88 } 88 89 … … 90 91 { 91 92 GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); 93 g_type_class_add_private(gobjectClass, sizeof(WebKitDOMTestOverloadedConstructorsPrivate)); 94 gobjectClass->constructor = webkit_dom_test_overloaded_constructors_constructor; 92 95 gobjectClass->finalize = webkit_dom_test_overloaded_constructors_finalize; 93 96 } … … 95 98 static void webkit_dom_test_overloaded_constructors_init(WebKitDOMTestOverloadedConstructors* request) 96 99 { 100 WebKitDOMTestOverloadedConstructorsPrivate* priv = WEBKIT_DOM_TEST_OVERLOADED_CONSTRUCTORS_GET_PRIVATE(request); 101 new (priv) WebKitDOMTestOverloadedConstructorsPrivate(); 97 102 } 98 103 -
trunk/Source/WebCore/bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp
r136505 r137072 35 35 #include <wtf/RefPtr.h> 36 36 37 #define WEBKIT_DOM_TEST_SERIALIZED_SCRIPT_VALUE_INTERFACE_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_TYPE_DOM_TEST_SERIALIZED_SCRIPT_VALUE_INTERFACE, WebKitDOMTestSerializedScriptValueInterfacePrivate) 38 39 typedef struct _WebKitDOMTestSerializedScriptValueInterfacePrivate { 40 #if ENABLE(Condition1) || ENABLE(Condition2) 41 RefPtr<WebCore::TestSerializedScriptValueInterface> coreObject; 42 #endif // ENABLE(Condition1) || ENABLE(Condition2) 43 } WebKitDOMTestSerializedScriptValueInterfacePrivate; 44 37 45 #if ENABLE(Condition1) || ENABLE(Condition2) 38 46 … … 46 54 return static_cast<WebKitDOMTestSerializedScriptValueInterface*>(ret); 47 55 48 return static_cast<WebKitDOMTestSerializedScriptValueInterface*>( DOMObjectCache::put(obj, WebKit::wrapTestSerializedScriptValueInterface(obj)));56 return static_cast<WebKitDOMTestSerializedScriptValueInterface*>(g_object_new(WEBKIT_TYPE_DOM_TEST_SERIALIZED_SCRIPT_VALUE_INTERFACE, "core-object", obj, NULL)); 49 57 } 50 58 … … 53 61 g_return_val_if_fail(request, 0); 54 62 55 WebCore::TestSerializedScriptValueInterface* coreObject = static_cast<WebCore::TestSerializedScriptValueInterface*>(WEBKIT_DOM_OBJECT(request)->coreObject); 63 return static_cast<WebCore::TestSerializedScriptValueInterface*>(WEBKIT_DOM_OBJECT(request)->coreObject); 64 } 65 66 WebKitDOMTestSerializedScriptValueInterface* wrapTestSerializedScriptValueInterface(WebCore::TestSerializedScriptValueInterface* coreObject) 67 { 56 68 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++ object66 // in a C-allocated GObject structure. See the finalize() code for the matching deref().67 coreObject->ref();68 69 69 return WEBKIT_DOM_TEST_SERIALIZED_SCRIPT_VALUE_INTERFACE(g_object_new(WEBKIT_TYPE_DOM_TEST_SERIALIZED_SCRIPT_VALUE_INTERFACE, "core-object", coreObject, NULL)); 70 70 } … … 87 87 static void webkit_dom_test_serialized_script_value_interface_finalize(GObject* object) 88 88 { 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 } 89 WebKitDOMTestSerializedScriptValueInterfacePrivate* priv = WEBKIT_DOM_TEST_SERIALIZED_SCRIPT_VALUE_INTERFACE_GET_PRIVATE(object); 90 #if ENABLE(Condition1) || ENABLE(Condition2) 91 WebKit::DOMObjectCache::forget(priv->coreObject.get()); 100 92 #endif // ENABLE(Condition1) || ENABLE(Condition2) 101 93 priv->~WebKitDOMTestSerializedScriptValueInterfacePrivate(); 102 94 G_OBJECT_CLASS(webkit_dom_test_serialized_script_value_interface_parent_class)->finalize(object); 103 95 } … … 167 159 } 168 160 161 static GObject* webkit_dom_test_serialized_script_value_interface_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) 162 { 163 GObject* object = G_OBJECT_CLASS(webkit_dom_test_serialized_script_value_interface_parent_class)->constructor(type, constructPropertiesCount, constructProperties); 164 #if ENABLE(Condition1) || ENABLE(Condition2) 165 WebKitDOMTestSerializedScriptValueInterfacePrivate* priv = WEBKIT_DOM_TEST_SERIALIZED_SCRIPT_VALUE_INTERFACE_GET_PRIVATE(object); 166 priv->coreObject = static_cast<WebCore::TestSerializedScriptValueInterface*>(WEBKIT_DOM_OBJECT(object)->coreObject); 167 WebKit::DOMObjectCache::put(priv->coreObject.get(), object); 168 #endif // ENABLE(Condition1) || ENABLE(Condition2) 169 return object; 170 } 171 169 172 static void webkit_dom_test_serialized_script_value_interface_class_init(WebKitDOMTestSerializedScriptValueInterfaceClass* requestClass) 170 173 { 171 174 GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); 175 g_type_class_add_private(gobjectClass, sizeof(WebKitDOMTestSerializedScriptValueInterfacePrivate)); 176 gobjectClass->constructor = webkit_dom_test_serialized_script_value_interface_constructor; 172 177 gobjectClass->finalize = webkit_dom_test_serialized_script_value_interface_finalize; 173 178 gobjectClass->get_property = webkit_dom_test_serialized_script_value_interface_get_property; … … 212 217 static void webkit_dom_test_serialized_script_value_interface_init(WebKitDOMTestSerializedScriptValueInterface* request) 213 218 { 219 WebKitDOMTestSerializedScriptValueInterfacePrivate* priv = WEBKIT_DOM_TEST_SERIALIZED_SCRIPT_VALUE_INTERFACE_GET_PRIVATE(request); 220 new (priv) WebKitDOMTestSerializedScriptValueInterfacePrivate(); 214 221 } 215 222
Note: See TracChangeset
for help on using the changeset viewer.