Remove GarbageCollected support from the bindings This was the last complicated piece of removing platform/heap, the rest should be trivial to delete after removing :trace overrides and mass-renaming the various WillBe types to their old versions. R=abarth@chromium.org Review URL: https://codereview.chromium.org/683593002
diff --git a/sky/engine/bindings/IDLExtendedAttributes.txt b/sky/engine/bindings/IDLExtendedAttributes.txt index a18c2f5..c3e39b4 100644 --- a/sky/engine/bindings/IDLExtendedAttributes.txt +++ b/sky/engine/bindings/IDLExtendedAttributes.txt
@@ -56,7 +56,6 @@ EventConstructor ExposeJSAccessors Exposed=* -GarbageCollected Global=|* Immutable ImplementedAs=* @@ -95,4 +94,3 @@ TypeChecking=Interface|Unrestricted URL Unforgeable -WillBeGarbageCollected
diff --git a/sky/engine/bindings/core/v8/V8DOMWrapper.h b/sky/engine/bindings/core/v8/V8DOMWrapper.h index 63f2370..91492ba 100644 --- a/sky/engine/bindings/core/v8/V8DOMWrapper.h +++ b/sky/engine/bindings/core/v8/V8DOMWrapper.h
@@ -60,7 +60,6 @@ static v8::Handle<v8::Object> associateObjectWithWrapperNonTemplate(Node*, const WrapperTypeInfo*, v8::Handle<v8::Object>, v8::Isolate*); static void setNativeInfo(v8::Handle<v8::Object>, const WrapperTypeInfo*, ScriptWrappableBase* internalPointer); static void setNativeInfoForHiddenWrapper(v8::Handle<v8::Object>, const WrapperTypeInfo*, ScriptWrappableBase* internalPointer); - static void setNativeInfoWithPersistentHandle(v8::Handle<v8::Object>, const WrapperTypeInfo*, ScriptWrappableBase* internalPointer, WrapperPersistentNode*); static void clearNativeInfo(v8::Handle<v8::Object>, const WrapperTypeInfo*); static bool isDOMWrapper(v8::Handle<v8::Value>); @@ -71,11 +70,6 @@ ASSERT(wrapper->InternalFieldCount() >= 2); ASSERT(internalPointer); ASSERT(wrapperTypeInfo); -#if ENABLE(OILPAN) - ASSERT(wrapperTypeInfo->gcType == WrapperTypeInfo::RefCountedObject); -#else - ASSERT(wrapperTypeInfo->gcType == WrapperTypeInfo::RefCountedObject || wrapperTypeInfo->gcType == WrapperTypeInfo::WillBeGarbageCollectedObject); -#endif wrapper->SetAlignedPointerInInternalField(v8DOMWrapperObjectIndex, internalPointer); wrapper->SetAlignedPointerInInternalField(v8DOMWrapperTypeIndex, const_cast<WrapperTypeInfo*>(wrapperTypeInfo)); } @@ -86,46 +80,15 @@ ASSERT(wrapper->InternalFieldCount() >= 2); ASSERT(internalPointer); ASSERT(wrapperTypeInfo); -#if ENABLE(OILPAN) - ASSERT(wrapperTypeInfo->gcType != WrapperTypeInfo::RefCountedObject); -#else - ASSERT(wrapperTypeInfo->gcType == WrapperTypeInfo::RefCountedObject || wrapperTypeInfo->gcType == WrapperTypeInfo::WillBeGarbageCollectedObject); -#endif - - // Clear out the last internal field, which is assumed to contain a valid persistent pointer value. - if (wrapperTypeInfo->gcType == WrapperTypeInfo::GarbageCollectedObject) { - wrapper->SetAlignedPointerInInternalField(wrapper->InternalFieldCount() - 1, 0); - } else if (wrapperTypeInfo->gcType == WrapperTypeInfo::WillBeGarbageCollectedObject) { -#if ENABLE(OILPAN) - wrapper->SetAlignedPointerInInternalField(wrapper->InternalFieldCount() - 1, 0); -#endif - } wrapper->SetAlignedPointerInInternalField(v8DOMWrapperObjectIndex, internalPointer); wrapper->SetAlignedPointerInInternalField(v8DOMWrapperTypeIndex, const_cast<WrapperTypeInfo*>(wrapperTypeInfo)); } -inline void V8DOMWrapper::setNativeInfoWithPersistentHandle(v8::Handle<v8::Object> wrapper, const WrapperTypeInfo* wrapperTypeInfo, ScriptWrappableBase* internalPointer, WrapperPersistentNode* handle) -{ - ASSERT(wrapper->InternalFieldCount() >= 3); - ASSERT(internalPointer); - ASSERT(wrapperTypeInfo); -#if ENABLE(OILPAN) - ASSERT(wrapperTypeInfo->gcType == WrapperTypeInfo::WillBeGarbageCollectedObject || wrapperTypeInfo->gcType == WrapperTypeInfo::GarbageCollectedObject); -#else - ASSERT(wrapperTypeInfo->gcType == WrapperTypeInfo::GarbageCollectedObject); -#endif - wrapper->SetAlignedPointerInInternalField(v8DOMWrapperObjectIndex, internalPointer); - wrapper->SetAlignedPointerInInternalField(v8DOMWrapperTypeIndex, const_cast<WrapperTypeInfo*>(wrapperTypeInfo)); - // Persistent handle is stored in the last internal field. - wrapper->SetAlignedPointerInInternalField(wrapper->InternalFieldCount() - 1, handle); -} - inline void V8DOMWrapper::clearNativeInfo(v8::Handle<v8::Object> wrapper, const WrapperTypeInfo* wrapperTypeInfo) { ASSERT(wrapper->InternalFieldCount() >= 2); ASSERT(wrapperTypeInfo); // clearNativeInfo() is used only by NP objects, which are not garbage collected. - ASSERT(wrapperTypeInfo->gcType == WrapperTypeInfo::RefCountedObject); wrapper->SetAlignedPointerInInternalField(v8DOMWrapperTypeIndex, const_cast<WrapperTypeInfo*>(wrapperTypeInfo)); wrapper->SetAlignedPointerInInternalField(v8DOMWrapperObjectIndex, 0); } @@ -139,29 +102,10 @@ return wrapper; } -template<typename V8T, typename T> -inline v8::Handle<v8::Object> V8DOMWrapper::associateObjectWithWrapper(T* object, const WrapperTypeInfo* wrapperTypeInfo, v8::Handle<v8::Object> wrapper, v8::Isolate* isolate) -{ - setNativeInfoWithPersistentHandle(wrapper, wrapperTypeInfo, V8T::toScriptWrappableBase(object), new WrapperPersistent<T>(object)); - ASSERT(isDOMWrapper(wrapper)); - DOMDataStore::setWrapper<V8T>(object, wrapper, isolate, wrapperTypeInfo); - return wrapper; -} - inline v8::Handle<v8::Object> V8DOMWrapper::associateObjectWithWrapperNonTemplate(ScriptWrappable* impl, const WrapperTypeInfo* wrapperTypeInfo, v8::Handle<v8::Object> wrapper, v8::Isolate* isolate) { wrapperTypeInfo->refObject(impl->toScriptWrappableBase()); -#if ENABLE(OILPAN) - if (wrapperTypeInfo->gcType == WrapperTypeInfo::RefCountedObject) - setNativeInfo(wrapper, wrapperTypeInfo, impl->toScriptWrappableBase()); - else - setNativeInfoWithPersistentHandle(wrapper, wrapperTypeInfo, impl->toScriptWrappableBase(), wrapperTypeInfo->createPersistentHandle(impl)); -#else - if (wrapperTypeInfo->gcType != WrapperTypeInfo::GarbageCollectedObject) - setNativeInfo(wrapper, wrapperTypeInfo, impl->toScriptWrappableBase()); - else - setNativeInfoWithPersistentHandle(wrapper, wrapperTypeInfo, impl->toScriptWrappableBase(), wrapperTypeInfo->createPersistentHandle(impl)); -#endif + setNativeInfo(wrapper, wrapperTypeInfo, impl->toScriptWrappableBase()); ASSERT(isDOMWrapper(wrapper)); DOMDataStore::setWrapperNonTemplate(impl, wrapper, isolate, wrapperTypeInfo); return wrapper; @@ -170,17 +114,7 @@ inline v8::Handle<v8::Object> V8DOMWrapper::associateObjectWithWrapperNonTemplate(Node* node, const WrapperTypeInfo* wrapperTypeInfo, v8::Handle<v8::Object> wrapper, v8::Isolate* isolate) { wrapperTypeInfo->refObject(ScriptWrappable::fromObject(node)->toScriptWrappableBase()); -#if ENABLE(OILPAN) - if (wrapperTypeInfo->gcType == WrapperTypeInfo::RefCountedObject) - setNativeInfo(wrapper, wrapperTypeInfo, ScriptWrappable::fromObject(node)->toScriptWrappableBase()); - else - setNativeInfoWithPersistentHandle(wrapper, wrapperTypeInfo, ScriptWrappable::fromObject(node)->toScriptWrappableBase(), wrapperTypeInfo->createPersistentHandle(ScriptWrappable::fromObject(node))); -#else - if (wrapperTypeInfo->gcType != WrapperTypeInfo::GarbageCollectedObject) - setNativeInfo(wrapper, wrapperTypeInfo, ScriptWrappable::fromObject(node)->toScriptWrappableBase()); - else - setNativeInfoWithPersistentHandle(wrapper, wrapperTypeInfo, ScriptWrappable::fromObject(node)->toScriptWrappableBase(), wrapperTypeInfo->createPersistentHandle(ScriptWrappable::fromObject(node))); -#endif + setNativeInfo(wrapper, wrapperTypeInfo, ScriptWrappable::fromObject(node)->toScriptWrappableBase()); ASSERT(isDOMWrapper(wrapper)); DOMDataStore::setWrapperNonTemplate(node, wrapper, isolate, wrapperTypeInfo); return wrapper;
diff --git a/sky/engine/bindings/core/v8/WrapperTypeInfo.h b/sky/engine/bindings/core/v8/WrapperTypeInfo.h index b1ca7b6..32d499b 100644 --- a/sky/engine/bindings/core/v8/WrapperTypeInfo.h +++ b/sky/engine/bindings/core/v8/WrapperTypeInfo.h
@@ -52,7 +52,6 @@ typedef v8::Handle<v8::FunctionTemplate> (*DomTemplateFunction)(v8::Isolate*); typedef void (*RefObjectFunction)(ScriptWrappableBase* internalPointer); typedef void (*DerefObjectFunction)(ScriptWrappableBase* internalPointer); -typedef WrapperPersistentNode* (*CreatePersistentHandleFunction)(ScriptWrappableBase* internalPointer); typedef ActiveDOMObject* (*ToActiveDOMObjectFunction)(v8::Handle<v8::Object>); typedef EventTarget* (*ToEventTargetFunction)(v8::Handle<v8::Object>); typedef void (*ResolveWrapperReachabilityFunction)(ScriptWrappableBase* internalPointer, const v8::Persistent<v8::Object>&, v8::Isolate*); @@ -83,12 +82,6 @@ Independent, }; - enum GCType { - GarbageCollectedObject, - WillBeGarbageCollectedObject, - RefCountedObject, - }; - static const WrapperTypeInfo* unwrap(v8::Handle<v8::Value> typeInfoWrapper) { return reinterpret_cast<const WrapperTypeInfo*>(v8::External::Cast(*typeInfoWrapper)->Value()); @@ -134,12 +127,6 @@ derefObjectFunction(internalPointer); } - WrapperPersistentNode* createPersistentHandle(ScriptWrappableBase* internalPointer) const - { - ASSERT(createPersistentHandleFunction); - return createPersistentHandleFunction(internalPointer); - } - void installConditionallyEnabledMethods(v8::Handle<v8::Object> prototypeTemplate, v8::Isolate* isolate) const { if (installConditionallyEnabledMethodsFunction) @@ -180,7 +167,6 @@ const DomTemplateFunction domTemplateFunction; const RefObjectFunction refObjectFunction; const DerefObjectFunction derefObjectFunction; - const CreatePersistentHandleFunction createPersistentHandleFunction; const ToActiveDOMObjectFunction toActiveDOMObjectFunction; const ToEventTargetFunction toEventTargetFunction; const ResolveWrapperReachabilityFunction visitDOMWrapperFunction; @@ -190,7 +176,6 @@ const WrapperTypePrototype wrapperTypePrototype; const WrapperClassId wrapperClassId; const Lifetime lifetime; - const GCType gcType; }; COMPILE_ASSERT(offsetof(struct WrapperTypeInfo, ginEmbedder) == offsetof(struct gin::WrapperInfo, embedder), wrapper_type_info_compatible_to_gin); @@ -226,34 +211,11 @@ return getInternalField<WrapperTypeInfo, v8DOMWrapperTypeIndex>(wrapper); } -inline const WrapperPersistentNode* toPersistentHandle(const v8::Handle<v8::Object>& wrapper) -{ - // Persistent handle is stored in the last internal field. - return static_cast<WrapperPersistentNode*>(wrapper->GetAlignedPointerFromInternalField(wrapper->InternalFieldCount() - 1)); -} - inline void releaseObject(v8::Handle<v8::Object> wrapper) { const WrapperTypeInfo* typeInfo = toWrapperTypeInfo(wrapper); - if (typeInfo->gcType == WrapperTypeInfo::GarbageCollectedObject) { - const WrapperPersistentNode* handle = toPersistentHandle(wrapper); - // This will be null iff a wrapper for a hidden wrapper object, - // see V8DOMWrapper::setNativeInfoForHiddenWrapper(). - delete handle; - } else if (typeInfo->gcType == WrapperTypeInfo::WillBeGarbageCollectedObject) { -#if ENABLE(OILPAN) - const WrapperPersistentNode* handle = toPersistentHandle(wrapper); - // This will be null iff a wrapper for a hidden wrapper object, - // see V8DOMWrapper::setNativeInfoForHiddenWrapper(). - delete handle; -#else - ASSERT(typeInfo->derefObjectFunction); - typeInfo->derefObjectFunction(toScriptWrappableBase(wrapper)); -#endif - } else { - ASSERT(typeInfo->derefObjectFunction); - typeInfo->derefObjectFunction(toScriptWrappableBase(wrapper)); - } + ASSERT(typeInfo->derefObjectFunction); + typeInfo->derefObjectFunction(toScriptWrappableBase(wrapper)); } } // namespace blink
diff --git a/sky/engine/bindings/core/v8/custom/V8ArrayBufferCustom.cpp b/sky/engine/bindings/core/v8/custom/V8ArrayBufferCustom.cpp index 0503ece..0c9c229 100644 --- a/sky/engine/bindings/core/v8/custom/V8ArrayBufferCustom.cpp +++ b/sky/engine/bindings/core/v8/custom/V8ArrayBufferCustom.cpp
@@ -50,12 +50,10 @@ 0, V8ArrayBuffer::refObject, V8ArrayBuffer::derefObject, - V8ArrayBuffer::createPersistentHandle, 0, 0, 0, 0, 0, 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::Independent, - WrapperTypeInfo::RefCountedObject }; bool V8ArrayBuffer::hasInstance(v8::Handle<v8::Value> value, v8::Isolate*) @@ -73,12 +71,6 @@ fromInternalPointer(internalPointer)->deref(); } -WrapperPersistentNode* V8ArrayBuffer::createPersistentHandle(ScriptWrappableBase* internalPointer) -{ - ASSERT_NOT_REACHED(); - return 0; -} - v8::Handle<v8::Object> V8ArrayBuffer::createWrapper(PassRefPtr<ArrayBuffer> impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate) { ASSERT(impl.get());
diff --git a/sky/engine/bindings/core/v8/custom/V8ArrayBufferCustom.h b/sky/engine/bindings/core/v8/custom/V8ArrayBufferCustom.h index f960337..f090756 100644 --- a/sky/engine/bindings/core/v8/custom/V8ArrayBufferCustom.h +++ b/sky/engine/bindings/core/v8/custom/V8ArrayBufferCustom.h
@@ -56,7 +56,6 @@ static ArrayBuffer* toNativeWithTypeCheck(v8::Isolate*, v8::Handle<v8::Value>); static void refObject(ScriptWrappableBase* internalPointer); static void derefObject(ScriptWrappableBase* internalPointer); - static WrapperPersistentNode* createPersistentHandle(ScriptWrappableBase* internalPointer); static const WrapperTypeInfo wrapperTypeInfo; static const int internalFieldCount = v8DefaultWrapperInternalFieldCount;
diff --git a/sky/engine/bindings/core/v8/custom/V8TypedArrayCustom.h b/sky/engine/bindings/core/v8/custom/V8TypedArrayCustom.h index f024d6e..558efe8 100644 --- a/sky/engine/bindings/core/v8/custom/V8TypedArrayCustom.h +++ b/sky/engine/bindings/core/v8/custom/V8TypedArrayCustom.h
@@ -56,7 +56,6 @@ static TypedArray* toNativeWithTypeCheck(v8::Isolate*, v8::Handle<v8::Value>); static void refObject(ScriptWrappableBase* internalPointer); static void derefObject(ScriptWrappableBase* internalPointer); - static WrapperPersistentNode* createPersistentHandle(ScriptWrappableBase* internalPointer); static const WrapperTypeInfo wrapperTypeInfo; static const int internalFieldCount = v8DefaultWrapperInternalFieldCount; @@ -189,12 +188,10 @@ 0, V8TypedArray<TypedArray>::refObject, V8TypedArray<TypedArray>::derefObject, - V8TypedArray<TypedArray>::createPersistentHandle, 0, 0, 0, 0, 0, 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::ObjectClassId, WrapperTypeInfo::Independent, - WrapperTypeInfo::RefCountedObject }; template <typename TypedArray> @@ -209,13 +206,6 @@ fromInternalPointer(internalPointer)->deref(); } -template <typename TypedArray> -WrapperPersistentNode* V8TypedArray<TypedArray>::createPersistentHandle(ScriptWrappableBase* internalPointer) -{ - ASSERT_NOT_REACHED(); - return 0; -} - } // namespace blink #endif // V8TypedArrayCustom_h
diff --git a/sky/engine/bindings/scripts/code_generator_v8.py b/sky/engine/bindings/scripts/code_generator_v8.py index 4677e0d..93e730b 100644 --- a/sky/engine/bindings/scripts/code_generator_v8.py +++ b/sky/engine/bindings/scripts/code_generator_v8.py
@@ -124,14 +124,6 @@ (interface_name, interface_info['implemented_as']) for interface_name, interface_info in interfaces_info.iteritems() if interface_info['implemented_as'])) - IdlType.set_garbage_collected_types(set( - interface_name - for interface_name, interface_info in interfaces_info.iteritems() - if 'GarbageCollected' in interface_info['inherited_extended_attributes'])) - IdlType.set_will_be_garbage_collected_types(set( - interface_name - for interface_name, interface_info in interfaces_info.iteritems() - if 'WillBeGarbageCollected' in interface_info['inherited_extended_attributes'])) v8_types.set_component_dirs(dict( (interface_name, interface_info['component_dir']) for interface_name, interface_info in interfaces_info.iteritems()))
diff --git a/sky/engine/bindings/scripts/compute_interfaces_info_overall.py b/sky/engine/bindings/scripts/compute_interfaces_info_overall.py index 51cee60..0482ddd 100755 --- a/sky/engine/bindings/scripts/compute_interfaces_info_overall.py +++ b/sky/engine/bindings/scripts/compute_interfaces_info_overall.py
@@ -86,9 +86,7 @@ INHERITED_EXTENDED_ATTRIBUTES = set([ 'ActiveDOMObject', 'DependentLifetime', - 'GarbageCollected', 'NotScriptWrappable', - 'WillBeGarbageCollected', ]) # Main variable (filled in and exported)
diff --git a/sky/engine/bindings/scripts/v8_interface.py b/sky/engine/bindings/scripts/v8_interface.py index 7fed1f0..3638ac4 100644 --- a/sky/engine/bindings/scripts/v8_interface.py +++ b/sky/engine/bindings/scripts/v8_interface.py
@@ -44,9 +44,9 @@ from v8_globals import includes import v8_methods import v8_types -from v8_types import cpp_ptr_type, cpp_template_type +from v8_types import cpp_template_type import v8_utilities -from v8_utilities import (capitalize, conditional_string, cpp_name, gc_type, +from v8_utilities import (capitalize, conditional_string, cpp_name, has_extended_attribute_value, runtime_enabled_function_name, extended_attribute_value_as_list) @@ -151,14 +151,11 @@ reachable_node_function or set_wrapper_reference_to_list) - this_gc_type = gc_type(interface) - wrapper_class_id = ('NodeClassId' if inherits_interface(interface.name, 'Node') else 'ObjectClassId') context = { 'conditional_string': conditional_string(interface), # [Conditional] 'cpp_class': cpp_name(interface), - 'gc_type': this_gc_type, # FIXME: Remove 'EventTarget' special handling, http://crbug.com/383699 'has_access_check_callbacks': (is_check_security and interface.name != 'Window' and @@ -186,7 +183,7 @@ 'measure_as': v8_utilities.measure_as(interface), # [MeasureAs] 'parent_interface': parent_interface, 'pass_cpp_type': cpp_template_type( - cpp_ptr_type('PassRefPtr', 'RawPtr', this_gc_type), + 'PassRefPtr', cpp_name(interface)), 'reachable_node_function': reachable_node_function, 'runtime_enabled_function': runtime_enabled_function_name(interface), # [RuntimeEnabled] @@ -893,7 +890,7 @@ for index, argument in enumerate(constructor.arguments)], 'arguments_need_try_catch': arguments_need_try_catch, 'cpp_type': cpp_template_type( - cpp_ptr_type('RefPtr', 'RawPtr', gc_type(interface)), + 'RefPtr', cpp_name(interface)), 'cpp_value': v8_methods.cpp_value( interface, constructor, len(constructor.arguments)),
diff --git a/sky/engine/bindings/scripts/v8_methods.py b/sky/engine/bindings/scripts/v8_methods.py index ae60769..22a84f5 100644 --- a/sky/engine/bindings/scripts/v8_methods.py +++ b/sky/engine/bindings/scripts/v8_methods.py
@@ -259,7 +259,7 @@ 'v8_set_return_value': v8_set_return_value(interface.name, method, this_cpp_value), 'v8_set_return_value_for_main_world': v8_set_return_value(interface.name, method, this_cpp_value, for_main_world=True), 'v8_value_to_local_cpp_value': v8_value_to_local_cpp_value(argument, index, return_promise=return_promise), - 'vector_type': v8_types.cpp_ptr_type('Vector', 'HeapVector', idl_type.gc_type), + 'vector_type': 'Vector', }
diff --git a/sky/engine/bindings/scripts/v8_types.py b/sky/engine/bindings/scripts/v8_types.py index 4569322..7afc230 100644 --- a/sky/engine/bindings/scripts/v8_types.py +++ b/sky/engine/bindings/scripts/v8_types.py
@@ -151,7 +151,7 @@ else: native_array_element_type = idl_type.native_array_element_type if native_array_element_type: - vector_type = cpp_ptr_type('Vector', 'HeapVector', native_array_element_type.gc_type) + vector_type = 'Vector' vector_template_type = cpp_template_type(vector_type, native_array_element_type.cpp_type_args(used_in_cpp_sequence=True)) if used_as_rvalue_type: return 'const %s&' % vector_template_type @@ -183,7 +183,7 @@ if raw_type: return implemented_as_class + '*' new_type = 'Member' if used_in_cpp_sequence else 'RawPtr' - ptr_type = cpp_ptr_type(('PassRefPtr' if used_as_rvalue_type else 'RefPtr'), new_type, idl_type.gc_type) + ptr_type = ('PassRefPtr' if used_as_rvalue_type else 'RefPtr') return cpp_template_type(ptr_type, implemented_as_class) # Default, assume native type is a pointer with same type name as idl type return base_idl_type + '*' @@ -245,16 +245,6 @@ return format_string.format(template=template, inner_type=inner_type) -def cpp_ptr_type(old_type, new_type, gc_type): - if gc_type == 'GarbageCollectedObject': - return new_type - if gc_type == 'WillBeGarbageCollectedObject': - if old_type == 'Vector': - return 'WillBe' + new_type - return old_type + 'WillBe' + new_type - return old_type - - def v8_type(interface_name): return 'V8' + interface_name @@ -284,38 +274,6 @@ cls.implemented_as_interfaces.update(new_implemented_as_interfaces)) -# [GarbageCollected] -IdlType.garbage_collected_types = set() - -IdlType.is_garbage_collected = property( - lambda self: self.base_type in IdlType.garbage_collected_types) - -IdlType.set_garbage_collected_types = classmethod( - lambda cls, new_garbage_collected_types: - cls.garbage_collected_types.update(new_garbage_collected_types)) - - -# [WillBeGarbageCollected] -IdlType.will_be_garbage_collected_types = set() - -IdlType.is_will_be_garbage_collected = property( - lambda self: self.base_type in IdlType.will_be_garbage_collected_types) - -IdlType.set_will_be_garbage_collected_types = classmethod( - lambda cls, new_will_be_garbage_collected_types: - cls.will_be_garbage_collected_types.update(new_will_be_garbage_collected_types)) - - -def gc_type(idl_type): - if idl_type.is_garbage_collected: - return 'GarbageCollectedObject' - if idl_type.is_will_be_garbage_collected: - return 'WillBeGarbageCollectedObject' - return 'RefCountedObject' - -IdlTypeBase.gc_type = property(gc_type) - - ################################################################################ # Includes ################################################################################ @@ -507,7 +465,7 @@ if (native_array_element_type.is_interface_type and native_array_element_type.name != 'Dictionary'): this_cpp_type = None - ref_ptr_type = cpp_ptr_type('RefPtr', 'Member', native_array_element_type.gc_type) + ref_ptr_type = 'RefPtr' expression_format = '(to{ref_ptr_type}NativeArray<{native_array_element_type}, V8{native_array_element_type}>({v8_value}, {index}, {isolate}))' add_includes_for_type(native_array_element_type) else:
diff --git a/sky/engine/bindings/scripts/v8_utilities.py b/sky/engine/bindings/scripts/v8_utilities.py index 53f3058..61e1440 100644 --- a/sky/engine/bindings/scripts/v8_utilities.py +++ b/sky/engine/bindings/scripts/v8_utilities.py
@@ -269,16 +269,6 @@ return sorted(set(exposure_set)) -# [GarbageCollected], [WillBeGarbageCollected] -def gc_type(definition): - extended_attributes = definition.extended_attributes - if 'GarbageCollected' in extended_attributes: - return 'GarbageCollectedObject' - elif 'WillBeGarbageCollected' in extended_attributes: - return 'WillBeGarbageCollectedObject' - return 'RefCountedObject' - - # [ImplementedAs] def cpp_name(definition_or_member): extended_attributes = definition_or_member.extended_attributes
diff --git a/sky/engine/bindings/templates/interface.cpp b/sky/engine/bindings/templates/interface.cpp index f48d54d..3dd2836 100644 --- a/sky/engine/bindings/templates/interface.cpp +++ b/sky/engine/bindings/templates/interface.cpp
@@ -497,7 +497,7 @@ if is_active_dom_object else '0' %} {% set to_event_target = '%s::toEventTarget' % v8_class if is_event_target else '0' %} -const WrapperTypeInfo {{v8_class}}Constructor::wrapperTypeInfo = { gin::kEmbedderBlink, {{v8_class}}Constructor::domTemplate, {{v8_class}}::refObject, {{v8_class}}::derefObject, {{v8_class}}::createPersistentHandle, {{to_active_dom_object}}, {{to_event_target}}, 0, {{v8_class}}::installConditionallyEnabledMethods, {{v8_class}}::installConditionallyEnabledProperties, 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::{{wrapper_class_id}}, WrapperTypeInfo::{{lifetime}}, WrapperTypeInfo::{{gc_type}} }; +const WrapperTypeInfo {{v8_class}}Constructor::wrapperTypeInfo = { gin::kEmbedderBlink, {{v8_class}}Constructor::domTemplate, {{v8_class}}::refObject, {{v8_class}}::derefObject, {{to_active_dom_object}}, {{to_event_target}}, 0, {{v8_class}}::installConditionallyEnabledMethods, {{v8_class}}::installConditionallyEnabledProperties, 0, WrapperTypeInfo::WrapperTypeObjectPrototype, WrapperTypeInfo::{{wrapper_class_id}}, WrapperTypeInfo::{{lifetime}} }; {{generate_constructor(named_constructor)}} v8::Handle<v8::FunctionTemplate> {{v8_class}}Constructor::domTemplate(v8::Isolate* isolate) @@ -1208,41 +1208,12 @@ void {{v8_class}}::refObject(ScriptWrappableBase* internalPointer) { -{% if gc_type == 'WillBeGarbageCollectedObject' %} -#if !ENABLE(OILPAN) fromInternalPointer(internalPointer)->ref(); -#endif -{% elif gc_type == 'RefCountedObject' %} - fromInternalPointer(internalPointer)->ref(); -{% endif %} } void {{v8_class}}::derefObject(ScriptWrappableBase* internalPointer) { -{% if gc_type == 'WillBeGarbageCollectedObject' %} -#if !ENABLE(OILPAN) fromInternalPointer(internalPointer)->deref(); -#endif -{% elif gc_type == 'RefCountedObject' %} - fromInternalPointer(internalPointer)->deref(); -{% endif %} -} - -WrapperPersistentNode* {{v8_class}}::createPersistentHandle(ScriptWrappableBase* internalPointer) -{ -{% if gc_type == 'GarbageCollectedObject' %} - return new WrapperPersistent<{{cpp_class}}>(fromInternalPointer(internalPointer)); -{% elif gc_type == 'WillBeGarbageCollectedObject' %} -#if ENABLE(OILPAN) - return new WrapperPersistent<{{cpp_class}}>(fromInternalPointer(internalPointer)); -#else - ASSERT_NOT_REACHED(); - return 0; -#endif -{% elif gc_type == 'RefCountedObject' %} - ASSERT_NOT_REACHED(); - return 0; -{% endif %} } template<>
diff --git a/sky/engine/bindings/templates/interface.h b/sky/engine/bindings/templates/interface.h index f28c422..424d988 100644 --- a/sky/engine/bindings/templates/interface.h +++ b/sky/engine/bindings/templates/interface.h
@@ -53,7 +53,6 @@ static const WrapperTypeInfo wrapperTypeInfo; static void refObject(ScriptWrappableBase* internalPointer); static void derefObject(ScriptWrappableBase* internalPointer); - static WrapperPersistentNode* createPersistentHandle(ScriptWrappableBase* internalPointer); {% if has_visit_dom_wrapper %} static void visitDOMWrapper(ScriptWrappableBase* internalPointer, const v8::Persistent<v8::Object>&, v8::Isolate*); {% endif %} @@ -134,19 +133,7 @@ FIXME: Remove this internal field, and share one field for either: * a persistent handle (if the object is in oilpan) or * a C++ pointer to the DOM object (if the object is not in oilpan) #} - {% if gc_type == 'GarbageCollectedObject' %} - static const int persistentHandleIndex = v8DefaultWrapperInternalFieldCount + {{custom_internal_field_counter}}; - static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + {{custom_internal_field_counter}} + 1; - {% elif gc_type == 'WillBeGarbageCollectedObject' %} -#if ENABLE(OILPAN) - static const int persistentHandleIndex = v8DefaultWrapperInternalFieldCount + {{custom_internal_field_counter}}; - static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + {{custom_internal_field_counter}} + 1; -#else static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + {{custom_internal_field_counter}}; -#endif - {% elif gc_type == 'RefCountedObject' %} - static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + {{custom_internal_field_counter}}; - {% endif %} {# End custom internal fields #} static inline ScriptWrappableBase* toScriptWrappableBase({{cpp_class}}* impl) {
diff --git a/sky/engine/bindings/templates/interface_base.cpp b/sky/engine/bindings/templates/interface_base.cpp index 747b8eb..ac665d6 100644 --- a/sky/engine/bindings/templates/interface_base.cpp +++ b/sky/engine/bindings/templates/interface_base.cpp
@@ -24,7 +24,7 @@ {% set wrapper_type_prototype = 'WrapperTypeExceptionPrototype' if is_exception else 'WrapperTypeObjectPrototype' %} -const WrapperTypeInfo {{v8_class}}::wrapperTypeInfo = { gin::kEmbedderBlink, {{v8_class}}::domTemplate, {{v8_class}}::refObject, {{v8_class}}::derefObject, {{v8_class}}::createPersistentHandle, {{to_active_dom_object}}, {{to_event_target}}, {{visit_dom_wrapper}}, {{v8_class}}::installConditionallyEnabledMethods, {{v8_class}}::installConditionallyEnabledProperties, {{parent_wrapper_type_info}}, WrapperTypeInfo::{{wrapper_type_prototype}}, WrapperTypeInfo::{{wrapper_class_id}}, WrapperTypeInfo::{{lifetime}}, WrapperTypeInfo::{{gc_type}} }; +const WrapperTypeInfo {{v8_class}}::wrapperTypeInfo = { gin::kEmbedderBlink, {{v8_class}}::domTemplate, {{v8_class}}::refObject, {{v8_class}}::derefObject, {{to_active_dom_object}}, {{to_event_target}}, {{visit_dom_wrapper}}, {{v8_class}}::installConditionallyEnabledMethods, {{v8_class}}::installConditionallyEnabledProperties, {{parent_wrapper_type_info}}, WrapperTypeInfo::{{wrapper_type_prototype}}, WrapperTypeInfo::{{wrapper_class_id}}, WrapperTypeInfo::{{lifetime}} }; {% if is_script_wrappable %} // This static member must be declared by DEFINE_WRAPPERTYPEINFO in {{cpp_class}}.h.
diff --git a/sky/engine/bindings/tests/idls/TestCallbackInterface.idl b/sky/engine/bindings/tests/idls/TestCallbackInterface.idl index cebfa19..283ffb2 100644 --- a/sky/engine/bindings/tests/idls/TestCallbackInterface.idl +++ b/sky/engine/bindings/tests/idls/TestCallbackInterface.idl
@@ -36,7 +36,4 @@ void voidMethodTestInterfaceEmptyStringArg(TestInterfaceEmpty testInterfaceEmptyArg, DOMString stringArg); [CallWith=ThisValue] void callbackWithThisValueVoidMethodStringArg(DOMString stringArg); [Custom] void customVoidMethodTestInterfaceEmptyArg(TestInterfaceEmpty testInterfaceEmptyArg); - // [WillBeGarbageCollected] - void voidMethodWillBeGarbageCollectedSequenceArg(sequence<TestInterfaceWillBeGarbageCollected> sequenceArg); - void voidMethodWillBeGarbageCollectedArrayArg(TestInterfaceWillBeGarbageCollected[] arrayArg); };
diff --git a/sky/engine/bindings/tests/idls/TestDictionary.idl b/sky/engine/bindings/tests/idls/TestDictionary.idl index a05f0b8..10eff72 100644 --- a/sky/engine/bindings/tests/idls/TestDictionary.idl +++ b/sky/engine/bindings/tests/idls/TestDictionary.idl
@@ -2,7 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. [ - GarbageCollected, ] dictionary TestDictionary { boolean booleanMember; long longMember = 1; @@ -11,10 +10,6 @@ double? doubleOrNullMember = null; DOMString? stringOrNullMember = "default string value"; TestInterface? testInterfaceOrNullMember; - TestInterfaceGarbageCollected testInterfaceGarbageCollectedMember; - TestInterfaceGarbageCollected? testInterfaceGarbageCollectedOrNullMember; - TestInterfaceWillBeGarbageCollected testInterfaceWillBeGarbageCollectedMember; - TestInterfaceWillBeGarbageCollected? testInterfaceWillBeGarbageCollectedOrNullMember; DOMString[] stringArrayMember; sequence<DOMString> stringSequenceMember; };
diff --git a/sky/engine/bindings/tests/idls/TestInterfaceGarbageCollected.idl b/sky/engine/bindings/tests/idls/TestInterfaceGarbageCollected.idl deleted file mode 100644 index 55739a3..0000000 --- a/sky/engine/bindings/tests/idls/TestInterfaceGarbageCollected.idl +++ /dev/null
@@ -1,11 +0,0 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -[ - Constructor(DOMString str), - GarbageCollected, -] interface TestInterfaceGarbageCollected : EventTarget { // Inherit from EventTarget to test order of internal fields - attribute TestInterfaceGarbageCollected attr1; - void func(TestInterfaceGarbageCollected arg); -};
diff --git a/sky/engine/bindings/tests/idls/TestInterfaceWillBeGarbageCollected.idl b/sky/engine/bindings/tests/idls/TestInterfaceWillBeGarbageCollected.idl deleted file mode 100644 index be955b0..0000000 --- a/sky/engine/bindings/tests/idls/TestInterfaceWillBeGarbageCollected.idl +++ /dev/null
@@ -1,38 +0,0 @@ -/* - * Copyright (C) 2014 Google Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -[ - Constructor(DOMString str), - NamedConstructor=TestInterface(DOMString str), - WillBeGarbageCollected, -] interface TestInterfaceWillBeGarbageCollected : EventTarget { // Inherit from EventTarget to test order of internal fields - attribute TestInterfaceWillBeGarbageCollected attr1; - void func(TestInterfaceWillBeGarbageCollected arg); -};
diff --git a/sky/engine/bindings/tests/idls/TestObject.idl b/sky/engine/bindings/tests/idls/TestObject.idl index e6048cf..f387527 100644 --- a/sky/engine/bindings/tests/idls/TestObject.idl +++ b/sky/engine/bindings/tests/idls/TestObject.idl
@@ -186,8 +186,6 @@ [PutForwards=hrefByteString] readonly attribute TestNode locationByteString; [PerWorldBindings, PutForwards=href] readonly attribute TestNode locationWithPerWorldBindings; [TypeChecking=Interface, PutForwards=href] readonly attribute TestNode locationTypeCheckingInterface; - [PutForwards=attr1] readonly attribute TestInterfaceGarbageCollected locationGarbageCollected; - [PutForwards=attr1] readonly attribute TestInterfaceWillBeGarbageCollected locationWillBeGarbageCollected; [RaisesException] attribute long raisesExceptionLongAttribute; [RaisesException=Getter] attribute long raisesExceptionGetterLongAttribute; [RaisesException=Setter] attribute long setterRaisesExceptionLongAttribute; @@ -337,8 +335,6 @@ TestInterface? nullableTestInterfaceMethod(); sequence<long>? nullableLongSequenceMethod(); // Union types - (TestInterfaceGarbageCollected or DOMString) testInterfaceGarbageCollectedOrDOMStringMethod(); - (TestInterfaceWillBeGarbageCollected or TestDictionary) testInterfaceWillBeGarbageCollectedOrTestDictionaryMethod(); (sequence<long> or DOMString[] or unrestricted double) longSequenceOrDOMStringArrayOrUnrestrictedDoubleMethod(); // Currently only used on interface type arguments void voidMethodTestInterfaceEmptyOrNullArg(TestInterfaceEmpty? nullableTestInterfaceEmptyArg); @@ -395,8 +391,6 @@ void voidMethodStringArgVariadicStringArg(DOMString stringArg, DOMString... variadicStringArgs); void voidMethodVariadicTestInterfaceEmptyArg(TestInterfaceEmpty... variadicTestInterfaceEmptyArgs); void voidMethodTestInterfaceEmptyArgVariadicTestInterfaceEmptyArg(TestInterfaceEmpty testInterfaceEmptyArg, TestInterfaceEmpty... variadicTestInterfaceEmptyArgs); - void voidMethodVariadicTestInterfaceGarbageCollectedArg(TestInterfaceGarbageCollected... variadicTestInterfaceGarbageCollectedArg); - void voidMethodVariadicTestInterfaceWillBeGarbageCollectedArg(TestInterfaceWillBeGarbageCollected... variadicTestInterfaceWillBeGarbageCollectedArg); // Overloaded methods void overloadedMethodA(long longArg); @@ -502,18 +496,10 @@ [TypeChecking=Interface] void typeCheckingInterfaceVoidMethodTestInterfaceEmptyVariadicArg(TestInterfaceEmpty... testInterfaceEmptyArg); [TypeChecking=Unrestricted] void typeCheckingUnrestrictedVoidMethodFloatArgDoubleArg(float floatArg, double doubleArg); [Unforgeable] void unforgeableVoidMethod(); - void voidMethodTestInterfaceGarbageCollectedSequenceArg(sequence<TestInterfaceGarbageCollected> testInterfaceGarbageCollectedSequenceArg); - void voidMethodTestInterfaceGarbageCollectedArrayArg(TestInterfaceGarbageCollected[] testInterfaceGarbageCollectedArrayArg); - void voidMethodTestInterfaceWillBeGarbageCollectedSequenceArg(sequence<TestInterfaceWillBeGarbageCollected> testInterfaceWillBeGarbageCollectedSequenceArg); - void voidMethodTestInterfaceWillBeGarbageCollectedArrayArg(TestInterfaceWillBeGarbageCollected[] testInterfaceWillBeGarbageCollectedArrayArg); // Extended attributes on referenced interfaces // (not self; self-reference tests at interface themselves) attribute TestInterface testInterfaceAttribute; // [ImplementedAs] - attribute TestInterfaceGarbageCollected testInterfaceGarbageCollectedAttribute; // [GarbageCollected] - attribute TestInterfaceGarbageCollected? testInterfaceGarbageCollectedOrNullAttribute; // [GarbageCollected] - attribute TestInterfaceWillBeGarbageCollected testInterfaceWillBeGarbageCollectedAttribute; // [WillBeGarbageCollected] - attribute TestInterfaceWillBeGarbageCollected? testInterfaceWillBeGarbageCollectedOrNullAttribute; // [WillBeGarbageCollected] // Private scripts [ImplementedInPrivateScript] void voidMethodImplementedInPrivateScript();
diff --git a/sky/engine/core/animation/AnimationEffect.idl b/sky/engine/core/animation/AnimationEffect.idl index f5dc6ce..db0fc6f 100644 --- a/sky/engine/core/animation/AnimationEffect.idl +++ b/sky/engine/core/animation/AnimationEffect.idl
@@ -5,6 +5,5 @@ [ RuntimeEnabled=WebAnimationsAPI, NoInterfaceObject, - WillBeGarbageCollected ] interface AnimationEffect { };
diff --git a/sky/engine/core/animation/AnimationNode.idl b/sky/engine/core/animation/AnimationNode.idl index c04ede6..e931313 100644 --- a/sky/engine/core/animation/AnimationNode.idl +++ b/sky/engine/core/animation/AnimationNode.idl
@@ -30,7 +30,6 @@ [ RuntimeEnabled=WebAnimationsAPI, - WillBeGarbageCollected, ] interface AnimationNode { // Playback state readonly attribute double? localTime;
diff --git a/sky/engine/core/animation/AnimationPlayer.idl b/sky/engine/core/animation/AnimationPlayer.idl index 2783ce8..38f357e 100644 --- a/sky/engine/core/animation/AnimationPlayer.idl +++ b/sky/engine/core/animation/AnimationPlayer.idl
@@ -30,7 +30,6 @@ [ NoInterfaceObject, - WillBeGarbageCollected, ActiveDOMObject, ] interface AnimationPlayer : EventTarget { [RuntimeEnabled=WebAnimationsAPI] attribute AnimationNode? source;
diff --git a/sky/engine/core/animation/AnimationTimeline.idl b/sky/engine/core/animation/AnimationTimeline.idl index 31b1648..1ca2b87 100644 --- a/sky/engine/core/animation/AnimationTimeline.idl +++ b/sky/engine/core/animation/AnimationTimeline.idl
@@ -4,7 +4,6 @@ [ RuntimeEnabled=WebAnimationsAPI, - WillBeGarbageCollected, ] interface AnimationTimeline { readonly attribute double? currentTime; AnimationPlayer play(AnimationNode source);
diff --git a/sky/engine/core/animation/Timing.idl b/sky/engine/core/animation/Timing.idl index 1bb3198..84a0120 100644 --- a/sky/engine/core/animation/Timing.idl +++ b/sky/engine/core/animation/Timing.idl
@@ -5,7 +5,6 @@ [ RuntimeEnabled=WebAnimationsAPI, ImplementedAs=AnimationNodeTiming, - WillBeGarbageCollected, ] interface Timing { attribute double delay; attribute double endDelay;
diff --git a/sky/engine/core/css/CSS.idl b/sky/engine/core/css/CSS.idl index 36fe6da..95be79b 100644 --- a/sky/engine/core/css/CSS.idl +++ b/sky/engine/core/css/CSS.idl
@@ -30,7 +30,6 @@ [ NoInterfaceObject, ImplementedAs=DOMWindowCSS, - WillBeGarbageCollected ] interface CSS { boolean supports(DOMString property, DOMString value); boolean supports(DOMString conditionText);
diff --git a/sky/engine/core/css/CSSMatrix.idl b/sky/engine/core/css/CSSMatrix.idl index 8721ece..1507a78 100644 --- a/sky/engine/core/css/CSSMatrix.idl +++ b/sky/engine/core/css/CSSMatrix.idl
@@ -28,7 +28,6 @@ Constructor(optional DOMString cssValue = null), ImplementedAs=CSSMatrix, RaisesException=Constructor, - WillBeGarbageCollected ] interface CSSMatrix { // These attributes are simple aliases for certain elements of the 4x4 matrix
diff --git a/sky/engine/core/css/CSSRule.idl b/sky/engine/core/css/CSSRule.idl index 15356e0..09bb91c 100644 --- a/sky/engine/core/css/CSSRule.idl +++ b/sky/engine/core/css/CSSRule.idl
@@ -23,7 +23,6 @@ Custom=Wrap, DependentLifetime, NotScriptWrappable, - WillBeGarbageCollected, ] interface CSSRule { // RuleType
diff --git a/sky/engine/core/css/CSSRuleList.idl b/sky/engine/core/css/CSSRuleList.idl index 35fb400..28a2952 100644 --- a/sky/engine/core/css/CSSRuleList.idl +++ b/sky/engine/core/css/CSSRuleList.idl
@@ -26,7 +26,6 @@ // Introduced in DOM Level 2: [ DependentLifetime, - WillBeGarbageCollected, ] interface CSSRuleList { readonly attribute unsigned long length; getter CSSRule item(unsigned long index);
diff --git a/sky/engine/core/css/CSSStyleDeclaration.idl b/sky/engine/core/css/CSSStyleDeclaration.idl index 0047acf..c369167 100644 --- a/sky/engine/core/css/CSSStyleDeclaration.idl +++ b/sky/engine/core/css/CSSStyleDeclaration.idl
@@ -21,7 +21,6 @@ // Introduced in DOM Level 2: [ DependentLifetime, - WillBeGarbageCollected ] interface CSSStyleDeclaration { [RaisesException=Setter] attribute DOMString? cssText;
diff --git a/sky/engine/core/css/CSSValue.idl b/sky/engine/core/css/CSSValue.idl index 3f33813..4405aae 100644 --- a/sky/engine/core/css/CSSValue.idl +++ b/sky/engine/core/css/CSSValue.idl
@@ -22,7 +22,6 @@ Custom=Wrap, DependentLifetime, NotScriptWrappable, - WillBeGarbageCollected, ] interface CSSValue { // UnitTypes
diff --git a/sky/engine/core/css/FontFace.idl b/sky/engine/core/css/FontFace.idl index af6720f..c6714e2 100644 --- a/sky/engine/core/css/FontFace.idl +++ b/sky/engine/core/css/FontFace.idl
@@ -43,7 +43,6 @@ Constructor(DOMString family, ArrayBuffer source, optional Dictionary descriptors), Constructor(DOMString family, ArrayBufferView source, optional Dictionary descriptors), ConstructorCallWith=ExecutionContext, - WillBeGarbageCollected, ] interface FontFace { [RaisesException=Setter, SetterCallWith=ExecutionContext] attribute DOMString family;
diff --git a/sky/engine/core/css/MediaList.idl b/sky/engine/core/css/MediaList.idl index cae0768..5c52c76 100644 --- a/sky/engine/core/css/MediaList.idl +++ b/sky/engine/core/css/MediaList.idl
@@ -25,7 +25,6 @@ // Introduced in DOM Level 2: [ - WillBeGarbageCollected ] interface MediaList { attribute DOMString? mediaText;
diff --git a/sky/engine/core/css/MediaQueryList.idl b/sky/engine/core/css/MediaQueryList.idl index 8bd0241..8418e4a 100644 --- a/sky/engine/core/css/MediaQueryList.idl +++ b/sky/engine/core/css/MediaQueryList.idl
@@ -21,7 +21,6 @@ [ ActiveDOMObject, NoInterfaceObject, - WillBeGarbageCollected ] interface MediaQueryList : EventTarget { readonly attribute DOMString media; readonly attribute boolean matches;
diff --git a/sky/engine/core/css/RGBColor.idl b/sky/engine/core/css/RGBColor.idl index 81ae393..19b22f1 100644 --- a/sky/engine/core/css/RGBColor.idl +++ b/sky/engine/core/css/RGBColor.idl
@@ -20,7 +20,6 @@ [ NotScriptWrappable, - WillBeGarbageCollected ] interface RGBColor { readonly attribute CSSPrimitiveValue red; readonly attribute CSSPrimitiveValue green;
diff --git a/sky/engine/core/css/Rect.idl b/sky/engine/core/css/Rect.idl index dbf1b36..1076add 100644 --- a/sky/engine/core/css/Rect.idl +++ b/sky/engine/core/css/Rect.idl
@@ -19,7 +19,6 @@ [ NotScriptWrappable, - WillBeGarbageCollected ] interface Rect { readonly attribute CSSPrimitiveValue top; readonly attribute CSSPrimitiveValue right;
diff --git a/sky/engine/core/css/StyleMedia.idl b/sky/engine/core/css/StyleMedia.idl index b897eb0..101bce1 100644 --- a/sky/engine/core/css/StyleMedia.idl +++ b/sky/engine/core/css/StyleMedia.idl
@@ -26,7 +26,6 @@ [ NoInterfaceObject, - WillBeGarbageCollected ] interface StyleMedia { readonly attribute DOMString type; boolean matchMedium([Default=Undefined] optional DOMString mediaquery);
diff --git a/sky/engine/core/css/StyleSheet.idl b/sky/engine/core/css/StyleSheet.idl index 5b94241..4bed8e1 100644 --- a/sky/engine/core/css/StyleSheet.idl +++ b/sky/engine/core/css/StyleSheet.idl
@@ -22,7 +22,6 @@ [ Custom=Wrap, SetWrapperReferenceFrom=ownerNode, - WillBeGarbageCollected ] interface StyleSheet { readonly attribute DOMString? type; readonly attribute Node ownerNode;
diff --git a/sky/engine/core/css/StyleSheetList.idl b/sky/engine/core/css/StyleSheetList.idl index 3da2d91..104a387 100644 --- a/sky/engine/core/css/StyleSheetList.idl +++ b/sky/engine/core/css/StyleSheetList.idl
@@ -21,7 +21,6 @@ // Introduced in DOM Level 2: [ SetWrapperReferenceFrom=document, - WillBeGarbageCollected ] interface StyleSheetList { readonly attribute unsigned long length; getter StyleSheet item(unsigned long index);
diff --git a/sky/engine/core/dom/ClientRect.idl b/sky/engine/core/dom/ClientRect.idl index 4fae5d7..ffdcfdd 100644 --- a/sky/engine/core/dom/ClientRect.idl +++ b/sky/engine/core/dom/ClientRect.idl
@@ -25,7 +25,6 @@ */ [ - WillBeGarbageCollected, ] interface ClientRect { readonly attribute float top; readonly attribute float right;
diff --git a/sky/engine/core/dom/ClientRectList.idl b/sky/engine/core/dom/ClientRectList.idl index bf14542..7f6b198 100644 --- a/sky/engine/core/dom/ClientRectList.idl +++ b/sky/engine/core/dom/ClientRectList.idl
@@ -25,7 +25,6 @@ */ [ - WillBeGarbageCollected, ] interface ClientRectList { readonly attribute unsigned long length; getter ClientRect item(unsigned long index);
diff --git a/sky/engine/core/dom/DOMError.idl b/sky/engine/core/dom/DOMError.idl index aba4e7a..48d6caa 100644 --- a/sky/engine/core/dom/DOMError.idl +++ b/sky/engine/core/dom/DOMError.idl
@@ -27,7 +27,6 @@ */ [ Constructor(DOMString name, optional DOMString message = null), - WillBeGarbageCollected ] interface DOMError { readonly attribute DOMString name; readonly attribute DOMString message;
diff --git a/sky/engine/core/dom/DOMException.idl b/sky/engine/core/dom/DOMException.idl index 9b82f33..2fc1649 100644 --- a/sky/engine/core/dom/DOMException.idl +++ b/sky/engine/core/dom/DOMException.idl
@@ -28,7 +28,6 @@ [ DoNotCheckConstants, - WillBeGarbageCollected, ] exception DOMException { readonly attribute unsigned short code;
diff --git a/sky/engine/core/dom/DOMImplementation.idl b/sky/engine/core/dom/DOMImplementation.idl index 2985b29..4443150 100644 --- a/sky/engine/core/dom/DOMImplementation.idl +++ b/sky/engine/core/dom/DOMImplementation.idl
@@ -20,7 +20,6 @@ [ SetWrapperReferenceFrom=document, - WillBeGarbageCollected, ] interface DOMImplementation { Document createDocument(); };
diff --git a/sky/engine/core/dom/DOMStringList.idl b/sky/engine/core/dom/DOMStringList.idl index 8a57087..06e7f3e 100644 --- a/sky/engine/core/dom/DOMStringList.idl +++ b/sky/engine/core/dom/DOMStringList.idl
@@ -24,7 +24,6 @@ */ [ - WillBeGarbageCollected, ] interface DOMStringList { readonly attribute unsigned long length; [TreatReturnedNullStringAs=Null] getter DOMString item([Default=Undefined] optional unsigned long index);
diff --git a/sky/engine/core/dom/DOMTokenList.idl b/sky/engine/core/dom/DOMTokenList.idl index 1947640..43ecc00 100644 --- a/sky/engine/core/dom/DOMTokenList.idl +++ b/sky/engine/core/dom/DOMTokenList.idl
@@ -24,7 +24,6 @@ [ SetWrapperReferenceFrom=element, - WillBeGarbageCollected, ] interface DOMTokenList { readonly attribute unsigned long length; [TreatReturnedNullStringAs=Null] getter DOMString item(unsigned long index);
diff --git a/sky/engine/core/dom/MutationObserver.idl b/sky/engine/core/dom/MutationObserver.idl index 2c6d142..5d30099 100644 --- a/sky/engine/core/dom/MutationObserver.idl +++ b/sky/engine/core/dom/MutationObserver.idl
@@ -31,7 +31,6 @@ [ CustomConstructor(MutationCallback callback), Custom=VisitDOMWrapper, - WillBeGarbageCollected, ] interface MutationObserver { [RaisesException] void observe(Node target, Dictionary options); sequence<MutationRecord> takeRecords();
diff --git a/sky/engine/core/dom/MutationRecord.idl b/sky/engine/core/dom/MutationRecord.idl index 9c32766..67096ef 100644 --- a/sky/engine/core/dom/MutationRecord.idl +++ b/sky/engine/core/dom/MutationRecord.idl
@@ -29,7 +29,6 @@ */ [ - WillBeGarbageCollected, ] interface MutationRecord { readonly attribute DOMString type; readonly attribute Node target;
diff --git a/sky/engine/core/dom/NamedNodeMap.idl b/sky/engine/core/dom/NamedNodeMap.idl index b53d748..e443b7e 100644 --- a/sky/engine/core/dom/NamedNodeMap.idl +++ b/sky/engine/core/dom/NamedNodeMap.idl
@@ -20,7 +20,6 @@ [ SetWrapperReferenceFrom=element, - WillBeGarbageCollected, ] interface NamedNodeMap { [NotEnumerable, ImplementedAs=getNamedItem] getter Attr ([Default=Undefined] optional DOMString name); getter Attr item([Default=Undefined] optional unsigned long index);
diff --git a/sky/engine/core/dom/NodeList.idl b/sky/engine/core/dom/NodeList.idl index 66cc820..b6f81a1 100644 --- a/sky/engine/core/dom/NodeList.idl +++ b/sky/engine/core/dom/NodeList.idl
@@ -21,7 +21,6 @@ [ DependentLifetime, SetWrapperReferenceFrom=virtualOwnerNode, - WillBeGarbageCollected, ] interface NodeList { getter Node item(unsigned long index); readonly attribute unsigned long length;
diff --git a/sky/engine/core/dom/Range.idl b/sky/engine/core/dom/Range.idl index b34f8ef..eaf87dc 100644 --- a/sky/engine/core/dom/Range.idl +++ b/sky/engine/core/dom/Range.idl
@@ -22,7 +22,6 @@ [ Constructor, ConstructorCallWith=Document, - WillBeGarbageCollected, ] interface Range { readonly attribute Node startContainer;
diff --git a/sky/engine/core/dom/Touch.idl b/sky/engine/core/dom/Touch.idl index 68895a9..8f35958 100644 --- a/sky/engine/core/dom/Touch.idl +++ b/sky/engine/core/dom/Touch.idl
@@ -24,7 +24,6 @@ */ [ - WillBeGarbageCollected, ] interface Touch { readonly attribute double clientX; readonly attribute double clientY;
diff --git a/sky/engine/core/dom/TouchList.idl b/sky/engine/core/dom/TouchList.idl index 516946d..8ef19cb 100644 --- a/sky/engine/core/dom/TouchList.idl +++ b/sky/engine/core/dom/TouchList.idl
@@ -24,7 +24,6 @@ */ [ - WillBeGarbageCollected, ] interface TouchList { readonly attribute unsigned long length;
diff --git a/sky/engine/core/dom/URL.idl b/sky/engine/core/dom/URL.idl index 12ba7ca..bf0edcd 100644 --- a/sky/engine/core/dom/URL.idl +++ b/sky/engine/core/dom/URL.idl
@@ -32,7 +32,6 @@ Constructor(ScalarValueString url, URL base), ImplementedAs=DOMURL, RaisesException=Constructor, - WillBeGarbageCollected, ] interface URL { };
diff --git a/sky/engine/core/editing/Selection.idl b/sky/engine/core/editing/Selection.idl index 24d3240..53bb18b 100644 --- a/sky/engine/core/editing/Selection.idl +++ b/sky/engine/core/editing/Selection.idl
@@ -37,7 +37,6 @@ // http://crbug.com/391673 [ ImplementedAs=DOMSelection, - WillBeGarbageCollected, ] interface Selection { readonly attribute Node anchorNode; readonly attribute long anchorOffset;
diff --git a/sky/engine/core/events/Event.idl b/sky/engine/core/events/Event.idl index a829df3..b29adea 100644 --- a/sky/engine/core/events/Event.idl +++ b/sky/engine/core/events/Event.idl
@@ -20,7 +20,6 @@ // Introduced in DOM Level 2: [ - WillBeGarbageCollected, Custom=Wrap, EventConstructor, ] interface Event {
diff --git a/sky/engine/core/events/EventTarget.idl b/sky/engine/core/events/EventTarget.idl index eacdc4e..51b1009 100644 --- a/sky/engine/core/events/EventTarget.idl +++ b/sky/engine/core/events/EventTarget.idl
@@ -21,7 +21,6 @@ [ CheckSecurity=Window, Custom=ToV8, - WillBeGarbageCollected, ] interface EventTarget { // FIXME: first 2 args should be required, but throwing TypeError breaks // legacy content. http://crbug.com/353484
diff --git a/sky/engine/core/frame/ConsoleBase.idl b/sky/engine/core/frame/ConsoleBase.idl index 96441fa..512d25e 100644 --- a/sky/engine/core/frame/ConsoleBase.idl +++ b/sky/engine/core/frame/ConsoleBase.idl
@@ -29,7 +29,6 @@ [ NoInterfaceObject, - WillBeGarbageCollected, ] interface ConsoleBase { [CallWith=(ScriptArguments,ScriptState)] void debug(); [CallWith=(ScriptArguments,ScriptState)] void error();
diff --git a/sky/engine/core/frame/History.idl b/sky/engine/core/frame/History.idl index 8d12e48..6d299df 100644 --- a/sky/engine/core/frame/History.idl +++ b/sky/engine/core/frame/History.idl
@@ -24,7 +24,6 @@ */ [ - WillBeGarbageCollected, ] interface History { readonly attribute unsigned long length; [Custom=Getter] readonly attribute SerializedScriptValue state;
diff --git a/sky/engine/core/frame/ImageBitmap.idl b/sky/engine/core/frame/ImageBitmap.idl index b211d6e..903a2d7 100644 --- a/sky/engine/core/frame/ImageBitmap.idl +++ b/sky/engine/core/frame/ImageBitmap.idl
@@ -3,7 +3,6 @@ // found in the LICENSE file. [ - WillBeGarbageCollected, ] interface ImageBitmap { readonly attribute long width; readonly attribute long height;
diff --git a/sky/engine/core/frame/Location.idl b/sky/engine/core/frame/Location.idl index 99a3ae9..8995388 100644 --- a/sky/engine/core/frame/Location.idl +++ b/sky/engine/core/frame/Location.idl
@@ -28,7 +28,6 @@ [ CheckSecurity=Frame, - WillBeGarbageCollected, ] interface Location { // |assign|, |replace|, and *writing* |href| do not require a security // check, as they *change* the page, and thus these do not change any
diff --git a/sky/engine/core/frame/Screen.idl b/sky/engine/core/frame/Screen.idl index a0b6385..f492433 100644 --- a/sky/engine/core/frame/Screen.idl +++ b/sky/engine/core/frame/Screen.idl
@@ -28,7 +28,6 @@ [ - WillBeGarbageCollected, ] interface Screen { readonly attribute unsigned long height; readonly attribute unsigned long width;
diff --git a/sky/engine/core/frame/Window.idl b/sky/engine/core/frame/Window.idl index cac410b..5d3e9a1 100644 --- a/sky/engine/core/frame/Window.idl +++ b/sky/engine/core/frame/Window.idl
@@ -32,7 +32,6 @@ Custom=ToV8, ImplementedAs=LocalDOMWindow, PrimaryGlobal, - WillBeGarbageCollected, ] interface Window : EventTarget { readonly attribute Screen screen; readonly attribute History history;
diff --git a/sky/engine/core/html/ImageData.idl b/sky/engine/core/html/ImageData.idl index 73ff6fc..ebd551d 100644 --- a/sky/engine/core/html/ImageData.idl +++ b/sky/engine/core/html/ImageData.idl
@@ -33,7 +33,6 @@ Constructor(Uint8ClampedArray data, unsigned long width, [Default=Undefined] optional unsigned long height), Custom=Wrap, RaisesException=Constructor, - WillBeGarbageCollected, ] interface ImageData { readonly attribute long width; readonly attribute long height;
diff --git a/sky/engine/core/html/MediaError.idl b/sky/engine/core/html/MediaError.idl index aaffbc2..727fde5 100644 --- a/sky/engine/core/html/MediaError.idl +++ b/sky/engine/core/html/MediaError.idl
@@ -25,7 +25,6 @@ [ RuntimeEnabled=Media, - WillBeGarbageCollected, ] interface MediaError { const unsigned short MEDIA_ERR_ABORTED = 1; const unsigned short MEDIA_ERR_NETWORK = 2;
diff --git a/sky/engine/core/html/MediaKeyError.idl b/sky/engine/core/html/MediaKeyError.idl index da32f87..73acc16 100644 --- a/sky/engine/core/html/MediaKeyError.idl +++ b/sky/engine/core/html/MediaKeyError.idl
@@ -25,7 +25,6 @@ [ RuntimeEnabled=EncryptedMediaAnyVersion, - WillBeGarbageCollected, ] interface MediaKeyError { const unsigned short MEDIA_KEYERR_UNKNOWN = 1; const unsigned short MEDIA_KEYERR_CLIENT = 2;
diff --git a/sky/engine/core/html/TextMetrics.idl b/sky/engine/core/html/TextMetrics.idl index c7d929a..747b5c7 100644 --- a/sky/engine/core/html/TextMetrics.idl +++ b/sky/engine/core/html/TextMetrics.idl
@@ -23,7 +23,6 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ [ - WillBeGarbageCollected, ] interface TextMetrics { // x-direction readonly attribute float width;
diff --git a/sky/engine/core/html/TimeRanges.idl b/sky/engine/core/html/TimeRanges.idl index 5c04549..e6e6e95 100644 --- a/sky/engine/core/html/TimeRanges.idl +++ b/sky/engine/core/html/TimeRanges.idl
@@ -24,7 +24,6 @@ */ [ - WillBeGarbageCollected, RuntimeEnabled=Media ] interface TimeRanges { readonly attribute unsigned long length;
diff --git a/sky/engine/core/html/canvas/ANGLEInstancedArrays.idl b/sky/engine/core/html/canvas/ANGLEInstancedArrays.idl index 06f84e0..d4caba0 100644 --- a/sky/engine/core/html/canvas/ANGLEInstancedArrays.idl +++ b/sky/engine/core/html/canvas/ANGLEInstancedArrays.idl
@@ -32,7 +32,6 @@ DoNotCheckConstants, NoInterfaceObject, TypeChecking=Interface, - WillBeGarbageCollected, ] interface ANGLEInstancedArrays { const unsigned long VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE = 0x88FE;
diff --git a/sky/engine/core/html/canvas/Canvas2DContextAttributes.idl b/sky/engine/core/html/canvas/Canvas2DContextAttributes.idl index f7dfab1..f44f403 100644 --- a/sky/engine/core/html/canvas/Canvas2DContextAttributes.idl +++ b/sky/engine/core/html/canvas/Canvas2DContextAttributes.idl
@@ -26,7 +26,6 @@ [ NoInterfaceObject, - WillBeGarbageCollected, ] interface Canvas2DContextAttributes { attribute boolean alpha; [RuntimeEnabled=ExperimentalCanvasFeatures] attribute DOMString storage;
diff --git a/sky/engine/core/html/canvas/CanvasGradient.idl b/sky/engine/core/html/canvas/CanvasGradient.idl index c5f5623..6981389 100644 --- a/sky/engine/core/html/canvas/CanvasGradient.idl +++ b/sky/engine/core/html/canvas/CanvasGradient.idl
@@ -25,7 +25,6 @@ */ [ TypeChecking=Unrestricted, - WillBeGarbageCollected, ] interface CanvasGradient { [RaisesException] void addColorStop(float offset, DOMString color);
diff --git a/sky/engine/core/html/canvas/CanvasPattern.idl b/sky/engine/core/html/canvas/CanvasPattern.idl index d8e453d..6f9520e 100644 --- a/sky/engine/core/html/canvas/CanvasPattern.idl +++ b/sky/engine/core/html/canvas/CanvasPattern.idl
@@ -23,6 +23,5 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ [ - WillBeGarbageCollected, ] interface CanvasPattern { };
diff --git a/sky/engine/core/html/canvas/CanvasRenderingContext2D.idl b/sky/engine/core/html/canvas/CanvasRenderingContext2D.idl index 44c7e90..78cea00 100644 --- a/sky/engine/core/html/canvas/CanvasRenderingContext2D.idl +++ b/sky/engine/core/html/canvas/CanvasRenderingContext2D.idl
@@ -39,7 +39,6 @@ [ TypeChecking=(Interface,Unrestricted), - WillBeGarbageCollected, ] interface CanvasRenderingContext2D { // back-reference to the canvas readonly attribute HTMLCanvasElement canvas;
diff --git a/sky/engine/core/html/canvas/EXTBlendMinMax.idl b/sky/engine/core/html/canvas/EXTBlendMinMax.idl index fbc69bc..c8f1a74 100644 --- a/sky/engine/core/html/canvas/EXTBlendMinMax.idl +++ b/sky/engine/core/html/canvas/EXTBlendMinMax.idl
@@ -6,7 +6,6 @@ DoNotCheckConstants, NoInterfaceObject, TypeChecking=Interface, - WillBeGarbageCollected, ] interface EXTBlendMinMax { const unsigned long MIN_EXT = 0x8007; const unsigned long MAX_EXT = 0x8008;
diff --git a/sky/engine/core/html/canvas/EXTFragDepth.idl b/sky/engine/core/html/canvas/EXTFragDepth.idl index ab71f12..ce0af8c 100644 --- a/sky/engine/core/html/canvas/EXTFragDepth.idl +++ b/sky/engine/core/html/canvas/EXTFragDepth.idl
@@ -25,6 +25,5 @@ [ NoInterfaceObject, - WillBeGarbageCollected, ] interface EXTFragDepth { };
diff --git a/sky/engine/core/html/canvas/EXTShaderTextureLOD.idl b/sky/engine/core/html/canvas/EXTShaderTextureLOD.idl index 975005a..7e70040 100644 --- a/sky/engine/core/html/canvas/EXTShaderTextureLOD.idl +++ b/sky/engine/core/html/canvas/EXTShaderTextureLOD.idl
@@ -4,6 +4,5 @@ [ NoInterfaceObject, - WillBeGarbageCollected, ] interface EXTShaderTextureLOD { };
diff --git a/sky/engine/core/html/canvas/EXTTextureFilterAnisotropic.idl b/sky/engine/core/html/canvas/EXTTextureFilterAnisotropic.idl index 1588e48..9078de6 100644 --- a/sky/engine/core/html/canvas/EXTTextureFilterAnisotropic.idl +++ b/sky/engine/core/html/canvas/EXTTextureFilterAnisotropic.idl
@@ -26,7 +26,6 @@ [ NoInterfaceObject, DoNotCheckConstants, - WillBeGarbageCollected, ] interface EXTTextureFilterAnisotropic { const unsigned long TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE; const unsigned long MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF;
diff --git a/sky/engine/core/html/canvas/OESElementIndexUint.idl b/sky/engine/core/html/canvas/OESElementIndexUint.idl index d4d8ea0..1b9e0f5 100644 --- a/sky/engine/core/html/canvas/OESElementIndexUint.idl +++ b/sky/engine/core/html/canvas/OESElementIndexUint.idl
@@ -25,6 +25,5 @@ [ NoInterfaceObject, - WillBeGarbageCollected, ] interface OESElementIndexUint { };
diff --git a/sky/engine/core/html/canvas/OESStandardDerivatives.idl b/sky/engine/core/html/canvas/OESStandardDerivatives.idl index a517c7b..0c4cb17 100644 --- a/sky/engine/core/html/canvas/OESStandardDerivatives.idl +++ b/sky/engine/core/html/canvas/OESStandardDerivatives.idl
@@ -26,7 +26,6 @@ [ NoInterfaceObject, DoNotCheckConstants, - WillBeGarbageCollected, ] interface OESStandardDerivatives { const unsigned long FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 0x8B8B; };
diff --git a/sky/engine/core/html/canvas/OESTextureFloat.idl b/sky/engine/core/html/canvas/OESTextureFloat.idl index 446d079..108658d 100644 --- a/sky/engine/core/html/canvas/OESTextureFloat.idl +++ b/sky/engine/core/html/canvas/OESTextureFloat.idl
@@ -25,6 +25,5 @@ [ NoInterfaceObject, - WillBeGarbageCollected, ] interface OESTextureFloat { };
diff --git a/sky/engine/core/html/canvas/OESTextureFloatLinear.idl b/sky/engine/core/html/canvas/OESTextureFloatLinear.idl index 8cb531d..895243d 100644 --- a/sky/engine/core/html/canvas/OESTextureFloatLinear.idl +++ b/sky/engine/core/html/canvas/OESTextureFloatLinear.idl
@@ -25,6 +25,5 @@ [ NoInterfaceObject, - WillBeGarbageCollected, ] interface OESTextureFloatLinear { };
diff --git a/sky/engine/core/html/canvas/OESTextureHalfFloat.idl b/sky/engine/core/html/canvas/OESTextureHalfFloat.idl index b050cfa..15c8414 100644 --- a/sky/engine/core/html/canvas/OESTextureHalfFloat.idl +++ b/sky/engine/core/html/canvas/OESTextureHalfFloat.idl
@@ -28,7 +28,6 @@ [ NoInterfaceObject, DoNotCheckConstants, - WillBeGarbageCollected, ] interface OESTextureHalfFloat { const GLenum HALF_FLOAT_OES = 0x8D61; };
diff --git a/sky/engine/core/html/canvas/OESTextureHalfFloatLinear.idl b/sky/engine/core/html/canvas/OESTextureHalfFloatLinear.idl index 201ca4d..f80bc7e 100644 --- a/sky/engine/core/html/canvas/OESTextureHalfFloatLinear.idl +++ b/sky/engine/core/html/canvas/OESTextureHalfFloatLinear.idl
@@ -25,6 +25,5 @@ [ NoInterfaceObject, - WillBeGarbageCollected, ] interface OESTextureHalfFloatLinear { };
diff --git a/sky/engine/core/html/canvas/OESVertexArrayObject.idl b/sky/engine/core/html/canvas/OESVertexArrayObject.idl index eba1db6..b933c43 100644 --- a/sky/engine/core/html/canvas/OESVertexArrayObject.idl +++ b/sky/engine/core/html/canvas/OESVertexArrayObject.idl
@@ -27,7 +27,6 @@ DoNotCheckConstants, NoInterfaceObject, TypeChecking=Interface, - WillBeGarbageCollected, ] interface OESVertexArrayObject { const unsigned long VERTEX_ARRAY_BINDING_OES = 0x85B5;
diff --git a/sky/engine/core/html/canvas/Path2D.idl b/sky/engine/core/html/canvas/Path2D.idl index 6f00586..b418364 100644 --- a/sky/engine/core/html/canvas/Path2D.idl +++ b/sky/engine/core/html/canvas/Path2D.idl
@@ -31,7 +31,6 @@ [ Constructor, Constructor(Path2D path), - WillBeGarbageCollected, ] interface Path2D { // FIXME(sky): Fix this object. };
diff --git a/sky/engine/core/html/canvas/WebGLActiveInfo.idl b/sky/engine/core/html/canvas/WebGLActiveInfo.idl index f4aa739..a518c02 100644 --- a/sky/engine/core/html/canvas/WebGLActiveInfo.idl +++ b/sky/engine/core/html/canvas/WebGLActiveInfo.idl
@@ -24,7 +24,6 @@ */ [ - WillBeGarbageCollected, ] interface WebGLActiveInfo { readonly attribute long size; readonly attribute unsigned long type;
diff --git a/sky/engine/core/html/canvas/WebGLBuffer.idl b/sky/engine/core/html/canvas/WebGLBuffer.idl index aecd6b0..f234e86 100644 --- a/sky/engine/core/html/canvas/WebGLBuffer.idl +++ b/sky/engine/core/html/canvas/WebGLBuffer.idl
@@ -24,6 +24,5 @@ */ [ - WillBeGarbageCollected, ] interface WebGLBuffer { };
diff --git a/sky/engine/core/html/canvas/WebGLCompressedTextureATC.idl b/sky/engine/core/html/canvas/WebGLCompressedTextureATC.idl index a66a329..2bca750 100644 --- a/sky/engine/core/html/canvas/WebGLCompressedTextureATC.idl +++ b/sky/engine/core/html/canvas/WebGLCompressedTextureATC.idl
@@ -26,7 +26,6 @@ [ NoInterfaceObject, DoNotCheckConstants, - WillBeGarbageCollected, ] interface WebGLCompressedTextureATC { /* Compressed Texture Formats */ const unsigned long COMPRESSED_RGB_ATC_WEBGL = 0x8C92;
diff --git a/sky/engine/core/html/canvas/WebGLCompressedTextureETC1.idl b/sky/engine/core/html/canvas/WebGLCompressedTextureETC1.idl index fd8759d..0178635 100644 --- a/sky/engine/core/html/canvas/WebGLCompressedTextureETC1.idl +++ b/sky/engine/core/html/canvas/WebGLCompressedTextureETC1.idl
@@ -5,7 +5,6 @@ [ NoInterfaceObject, DoNotCheckConstants, - WillBeGarbageCollected, ] interface WebGLCompressedTextureETC1 { /* Compressed Texture Formats */ const unsigned long COMPRESSED_RGB_ETC1_WEBGL = 0x8D64;
diff --git a/sky/engine/core/html/canvas/WebGLCompressedTexturePVRTC.idl b/sky/engine/core/html/canvas/WebGLCompressedTexturePVRTC.idl index 9eaa3a9..a33d7d7 100644 --- a/sky/engine/core/html/canvas/WebGLCompressedTexturePVRTC.idl +++ b/sky/engine/core/html/canvas/WebGLCompressedTexturePVRTC.idl
@@ -26,7 +26,6 @@ [ NoInterfaceObject, DoNotCheckConstants, - WillBeGarbageCollected, ] interface WebGLCompressedTexturePVRTC { /* Compressed Texture Formats */ const unsigned long COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 0x8C00;
diff --git a/sky/engine/core/html/canvas/WebGLCompressedTextureS3TC.idl b/sky/engine/core/html/canvas/WebGLCompressedTextureS3TC.idl index eef723f..147b945 100644 --- a/sky/engine/core/html/canvas/WebGLCompressedTextureS3TC.idl +++ b/sky/engine/core/html/canvas/WebGLCompressedTextureS3TC.idl
@@ -26,7 +26,6 @@ [ NoInterfaceObject, DoNotCheckConstants, - WillBeGarbageCollected, ] interface WebGLCompressedTextureS3TC { /* Compressed Texture Formats */ const unsigned long COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0;
diff --git a/sky/engine/core/html/canvas/WebGLContextAttributes.idl b/sky/engine/core/html/canvas/WebGLContextAttributes.idl index ecd211a..6a7beba 100644 --- a/sky/engine/core/html/canvas/WebGLContextAttributes.idl +++ b/sky/engine/core/html/canvas/WebGLContextAttributes.idl
@@ -26,7 +26,6 @@ [ NoInterfaceObject, - WillBeGarbageCollected, ] interface WebGLContextAttributes { attribute boolean alpha; attribute boolean depth;
diff --git a/sky/engine/core/html/canvas/WebGLDebugRendererInfo.idl b/sky/engine/core/html/canvas/WebGLDebugRendererInfo.idl index bf95c1b..fc7717b 100644 --- a/sky/engine/core/html/canvas/WebGLDebugRendererInfo.idl +++ b/sky/engine/core/html/canvas/WebGLDebugRendererInfo.idl
@@ -26,7 +26,6 @@ [ NoInterfaceObject, DoNotCheckConstants, - WillBeGarbageCollected, ] interface WebGLDebugRendererInfo { const unsigned long UNMASKED_VENDOR_WEBGL = 0x9245; const unsigned long UNMASKED_RENDERER_WEBGL = 0x9246;
diff --git a/sky/engine/core/html/canvas/WebGLDebugShaders.idl b/sky/engine/core/html/canvas/WebGLDebugShaders.idl index 92c36be..0806618 100644 --- a/sky/engine/core/html/canvas/WebGLDebugShaders.idl +++ b/sky/engine/core/html/canvas/WebGLDebugShaders.idl
@@ -26,7 +26,6 @@ [ NoInterfaceObject, TypeChecking=Interface, - WillBeGarbageCollected, ] interface WebGLDebugShaders { DOMString? getTranslatedShaderSource(WebGLShader? shader); };
diff --git a/sky/engine/core/html/canvas/WebGLDepthTexture.idl b/sky/engine/core/html/canvas/WebGLDepthTexture.idl index d6a0874..1579dac 100644 --- a/sky/engine/core/html/canvas/WebGLDepthTexture.idl +++ b/sky/engine/core/html/canvas/WebGLDepthTexture.idl
@@ -26,7 +26,6 @@ [ NoInterfaceObject, DoNotCheckConstants, - WillBeGarbageCollected, ] interface WebGLDepthTexture { const unsigned long UNSIGNED_INT_24_8_WEBGL = 0x84FA; };
diff --git a/sky/engine/core/html/canvas/WebGLDrawBuffers.idl b/sky/engine/core/html/canvas/WebGLDrawBuffers.idl index 82fc059..e0d3ce6 100644 --- a/sky/engine/core/html/canvas/WebGLDrawBuffers.idl +++ b/sky/engine/core/html/canvas/WebGLDrawBuffers.idl
@@ -28,7 +28,6 @@ [ NoInterfaceObject, DoNotCheckConstants, - WillBeGarbageCollected, ] interface WebGLDrawBuffers { const GLenum COLOR_ATTACHMENT0_WEBGL = 0x8CE0; const GLenum COLOR_ATTACHMENT1_WEBGL = 0x8CE1;
diff --git a/sky/engine/core/html/canvas/WebGLFramebuffer.idl b/sky/engine/core/html/canvas/WebGLFramebuffer.idl index 354f82f..9939201 100644 --- a/sky/engine/core/html/canvas/WebGLFramebuffer.idl +++ b/sky/engine/core/html/canvas/WebGLFramebuffer.idl
@@ -24,6 +24,5 @@ */ [ - WillBeGarbageCollected, ] interface WebGLFramebuffer { };
diff --git a/sky/engine/core/html/canvas/WebGLLoseContext.idl b/sky/engine/core/html/canvas/WebGLLoseContext.idl index c235567..9278c2d 100644 --- a/sky/engine/core/html/canvas/WebGLLoseContext.idl +++ b/sky/engine/core/html/canvas/WebGLLoseContext.idl
@@ -26,7 +26,6 @@ [ NoInterfaceObject, TypeChecking=Interface, - WillBeGarbageCollected, ] interface WebGLLoseContext { void loseContext(); void restoreContext();
diff --git a/sky/engine/core/html/canvas/WebGLProgram.idl b/sky/engine/core/html/canvas/WebGLProgram.idl index b637b22..79caff5 100644 --- a/sky/engine/core/html/canvas/WebGLProgram.idl +++ b/sky/engine/core/html/canvas/WebGLProgram.idl
@@ -24,6 +24,5 @@ */ [ - WillBeGarbageCollected, ] interface WebGLProgram { };
diff --git a/sky/engine/core/html/canvas/WebGLRenderbuffer.idl b/sky/engine/core/html/canvas/WebGLRenderbuffer.idl index 2e6792f..93297e3 100644 --- a/sky/engine/core/html/canvas/WebGLRenderbuffer.idl +++ b/sky/engine/core/html/canvas/WebGLRenderbuffer.idl
@@ -24,6 +24,5 @@ */ [ - WillBeGarbageCollected, ] interface WebGLRenderbuffer { };
diff --git a/sky/engine/core/html/canvas/WebGLRenderingContext.idl b/sky/engine/core/html/canvas/WebGLRenderingContext.idl index 6c12783..da57179 100644 --- a/sky/engine/core/html/canvas/WebGLRenderingContext.idl +++ b/sky/engine/core/html/canvas/WebGLRenderingContext.idl
@@ -28,6 +28,5 @@ [ DoNotCheckConstants, TypeChecking=Interface, - WillBeGarbageCollected, ] interface WebGLRenderingContext { }; WebGLRenderingContext implements WebGLRenderingContextBase;
diff --git a/sky/engine/core/html/canvas/WebGLRenderingContextBase.idl b/sky/engine/core/html/canvas/WebGLRenderingContextBase.idl index ae27ab6..d798f71 100644 --- a/sky/engine/core/html/canvas/WebGLRenderingContextBase.idl +++ b/sky/engine/core/html/canvas/WebGLRenderingContextBase.idl
@@ -46,7 +46,6 @@ // DoNotCheckConstants, // need to put on implementing interface NoInterfaceObject, // Always used on target of 'implements' // TypeChecking=(Interface,Unrestricted), // need to put on implementing interface - WillBeGarbageCollected, ] interface WebGLRenderingContextBase { readonly attribute HTMLCanvasElement canvas;
diff --git a/sky/engine/core/html/canvas/WebGLShader.idl b/sky/engine/core/html/canvas/WebGLShader.idl index 1d48fd6..f7d1106 100644 --- a/sky/engine/core/html/canvas/WebGLShader.idl +++ b/sky/engine/core/html/canvas/WebGLShader.idl
@@ -24,6 +24,5 @@ */ [ - WillBeGarbageCollected, ] interface WebGLShader { };
diff --git a/sky/engine/core/html/canvas/WebGLShaderPrecisionFormat.idl b/sky/engine/core/html/canvas/WebGLShaderPrecisionFormat.idl index f9531c5..a5c7d5c 100644 --- a/sky/engine/core/html/canvas/WebGLShaderPrecisionFormat.idl +++ b/sky/engine/core/html/canvas/WebGLShaderPrecisionFormat.idl
@@ -25,7 +25,6 @@ */ [ - WillBeGarbageCollected, ] interface WebGLShaderPrecisionFormat { readonly attribute long rangeMin; readonly attribute long rangeMax;
diff --git a/sky/engine/core/html/canvas/WebGLTexture.idl b/sky/engine/core/html/canvas/WebGLTexture.idl index 7a1583c..45b5190 100644 --- a/sky/engine/core/html/canvas/WebGLTexture.idl +++ b/sky/engine/core/html/canvas/WebGLTexture.idl
@@ -24,6 +24,5 @@ */ [ - WillBeGarbageCollected, ] interface WebGLTexture { };
diff --git a/sky/engine/core/html/canvas/WebGLUniformLocation.idl b/sky/engine/core/html/canvas/WebGLUniformLocation.idl index bac3601..cc474e3 100644 --- a/sky/engine/core/html/canvas/WebGLUniformLocation.idl +++ b/sky/engine/core/html/canvas/WebGLUniformLocation.idl
@@ -25,6 +25,5 @@ */ [ - WillBeGarbageCollected, ] interface WebGLUniformLocation { };
diff --git a/sky/engine/core/html/canvas/WebGLVertexArrayObjectOES.idl b/sky/engine/core/html/canvas/WebGLVertexArrayObjectOES.idl index 2a9e5bc..2087f42 100644 --- a/sky/engine/core/html/canvas/WebGLVertexArrayObjectOES.idl +++ b/sky/engine/core/html/canvas/WebGLVertexArrayObjectOES.idl
@@ -25,6 +25,5 @@ [ NoInterfaceObject, - WillBeGarbageCollected, ] interface WebGLVertexArrayObjectOES { };
diff --git a/sky/engine/platform/heap/Handle.cpp b/sky/engine/platform/heap/Handle.cpp index e2da7b2..6577aeb 100644 --- a/sky/engine/platform/heap/Handle.cpp +++ b/sky/engine/platform/heap/Handle.cpp
@@ -7,68 +7,4 @@ namespace blink { -bool WrapperPersistentRegion::removeIfNotLast(WrapperPersistentRegion** headPtr) -{ - ASSERT(!m_count); - // We are the last region in the list if both the region's m_prev and - // m_next are 0. - if (!m_prev && !m_next) - return false; - if (m_prev) { - m_prev->m_next = m_next; - } else { - ASSERT(*headPtr == this); - *headPtr = m_next; - } - if (m_next) - m_next->m_prev = m_prev; - m_prev = 0; - m_next = 0; - return true; -} - -void WrapperPersistentRegion::insertHead(WrapperPersistentRegion** headPtr, WrapperPersistentRegion* newHead) -{ - ASSERT(headPtr); - WrapperPersistentRegion* oldHead = *headPtr; - if (oldHead) { - ASSERT(!oldHead->m_prev); - oldHead->m_prev = newHead; - } - newHead->m_prev = 0; - newHead->m_next = oldHead; - *headPtr = newHead; -} - -WrapperPersistentRegion* WrapperPersistentRegion::removeHead(WrapperPersistentRegion** headPtr) -{ - // We only call this if there is at least one element in the list. - ASSERT(headPtr && *headPtr); - WrapperPersistentRegion* oldHead = *headPtr; - ASSERT(!oldHead->m_prev); - *headPtr = oldHead->m_next; - oldHead->m_next = 0; - ASSERT(!(*headPtr) || (*headPtr)->m_prev == oldHead); - if (*headPtr) - (*headPtr)->m_prev = 0; - return oldHead; -} - -void* WrapperPersistentRegion::outOfLineAllocate(ThreadState* state, WrapperPersistentRegion* head) -{ - void* persistent = 0; - // The caller has already tried allocating in the passed-in region, start - // from the next. - for (WrapperPersistentRegion* current = head->m_next; current; current = current->m_next) { - persistent = current->allocate(); - if (persistent) - return persistent; - } - ASSERT(!persistent); - WrapperPersistentRegion* newRegion = state->takeWrapperPersistentRegion(); - persistent = newRegion->allocate(); - ASSERT(persistent); - return persistent; -} - }
diff --git a/sky/engine/platform/heap/Handle.h b/sky/engine/platform/heap/Handle.h index 17c05f2..7f6a328 100644 --- a/sky/engine/platform/heap/Handle.h +++ b/sky/engine/platform/heap/Handle.h
@@ -87,206 +87,6 @@ }; -const int wrapperPersistentsPerRegion = 256; -const size_t wrapperPersistentOffsetMask = ~static_cast<size_t>(3); -const size_t wrapperPersistentLiveBitMask = 1; - -class WrapperPersistentNode { - WTF_MAKE_NONCOPYABLE(WrapperPersistentNode); -public: - bool isAlive() { return m_regionOffset & wrapperPersistentLiveBitMask; } - - WrapperPersistentRegion* region() - { - return reinterpret_cast<WrapperPersistentRegion*>( - reinterpret_cast<Address>(this) - (m_regionOffset & wrapperPersistentOffsetMask)); - } - - virtual ~WrapperPersistentNode() - { - m_regionOffset &= ~wrapperPersistentLiveBitMask; - } - - virtual void trace(Visitor* visitor) { } - -protected: - WrapperPersistentNode() : m_raw(0), m_regionOffset(0) { } - - explicit WrapperPersistentNode(void* raw) - { - // When the constructor is called the slot should have been taken (takeSlot) - // as part of allocating the memory (via operator new). Hence the m_raw - // pointer should be 0. - ASSERT(!m_raw); - m_raw = raw; - // The m_regionOffset should always be set as an offset to the containing - // region. However it should not have the live bit set when the constructor - // is called. - ASSERT(m_regionOffset); - ASSERT(!isAlive()); - m_regionOffset |= wrapperPersistentLiveBitMask; - } - -private: - void initSlot(size_t regionOffset, WrapperPersistentNode* nextFree) - { - ASSERT(!m_raw); - ASSERT(!m_regionOffset); - ASSERT(!(regionOffset & ~wrapperPersistentOffsetMask)); - m_raw = nextFree; - m_regionOffset = regionOffset; - } - - WrapperPersistentNode* takeSlot() - { - // The slot should not be alive at the point where it is allocated. - ASSERT(!isAlive()); - WrapperPersistentNode* nextFree = reinterpret_cast<WrapperPersistentNode*>(m_raw); - m_raw = 0; - return nextFree; - } - - WrapperPersistentNode* freeSlot(WrapperPersistentNode* nextFree) - { - // When the slot is freed the destructor should already have cleared the live bit. - ASSERT(!isAlive()); - m_raw = nextFree; - return this; - } - -protected: - // m_raw is used both to point to the object when the WrapperPersistentNode is used/alive - // and to point to the next free wrapperPersistentNode in the region when the node is - // unused/dead. - void* m_raw; - - // The m_regionOffset field is an offset from this node to the base of the containing - // WrapperPersistentRegion. - size_t m_regionOffset; - - friend class WrapperPersistentRegion; -}; - -template<typename T> -class WrapperPersistent final : public WrapperPersistentNode { -public: - WrapperPersistent() : WrapperPersistentNode(0) { } - WrapperPersistent(std::nullptr_t) : WrapperPersistentNode(0) { } - WrapperPersistent(T* raw) : WrapperPersistentNode(raw) { } - WrapperPersistent(T& raw) : WrapperPersistentNode(&raw) { } - - void* operator new(size_t); - void operator delete(void*); - - virtual void trace(Visitor* visitor) - { - ASSERT(isAlive()); - visitor->mark(static_cast<T*>(m_raw)); - } -}; - -class PLATFORM_EXPORT WrapperPersistentRegion { - WTF_MAKE_NONCOPYABLE(WrapperPersistentRegion); -public: - WrapperPersistentRegion() - { - WrapperPersistentNode* nextFree = 0; - for (int i = wrapperPersistentsPerRegion - 1; i >= 0; --i) { - size_t regionOffset = reinterpret_cast<Address>(&m_entries[i]) - reinterpret_cast<Address>(this); - // Setup the free slot with an offset to the containing region's base and a pointer to the next - // free slot in the region. - m_entries[i].initSlot(regionOffset, nextFree); - nextFree = &m_entries[i]; - } - m_prev = 0; - m_next = 0; - m_freeHead = nextFree; - m_count = 0; - } - - void* allocate() - { - if (!m_freeHead) { - ASSERT(m_count == wrapperPersistentsPerRegion); - return 0; - } - // We have a free persistent slot in this region. - WrapperPersistentNode* freeSlot = m_freeHead; - // Take the slot and advance m_freeHead to the next free slot. - m_freeHead = freeSlot->takeSlot(); - ASSERT(m_count < wrapperPersistentsPerRegion); - m_count++; - return reinterpret_cast<void*>(freeSlot); - } - - void free(WrapperPersistentNode* object) - { - ASSERT(object); - ASSERT(!object->isAlive()); - m_freeHead = object->freeSlot(m_freeHead); - ASSERT(m_count > 0); - m_count--; - if (!m_count) - ThreadState::current()->freeWrapperPersistentRegion(this); - } - - bool removeIfNotLast(WrapperPersistentRegion** headPtr); - static void insertHead(WrapperPersistentRegion** headPtr, WrapperPersistentRegion* newHead); - static WrapperPersistentRegion* removeHead(WrapperPersistentRegion** headPtr); - static void* outOfLineAllocate(ThreadState*, WrapperPersistentRegion*); - static void trace(WrapperPersistentRegion* head, Visitor* visitor) - { - for (WrapperPersistentRegion* current = head; current; current = current->m_next) - current->traceRegion(visitor); - } - -private: - void traceRegion(Visitor* visitor) - { - size_t live = 0; - -#ifdef NDEBUG - for (int i = 0; i < wrapperPersistentsPerRegion && live < m_count; ++i) { -#else - // In DEBUG mode we scan all entries to validate we only have m_count - // live entries. - for (int i = 0; i < wrapperPersistentsPerRegion; ++i) { -#endif - if (m_entries[i].isAlive()) { - m_entries[i].trace(visitor); - live++; - } - } - ASSERT(live == m_count); - } - - WrapperPersistentRegion* m_prev; - WrapperPersistentRegion* m_next; - WrapperPersistentNode* m_freeHead; - size_t m_count; - WrapperPersistentNode m_entries[wrapperPersistentsPerRegion]; -}; - -template<typename T> -void* WrapperPersistent<T>::operator new(size_t size) -{ - ASSERT(size == sizeof(WrapperPersistent<T>)); - ThreadState* state = ThreadState::current(); - WrapperPersistentRegion* region = state->wrapperRoots(); - ASSERT(region); - void* persistent = region->allocate(); - if (!persistent) - return WrapperPersistentRegion::outOfLineAllocate(state, region); - return persistent; -} - -template<typename T> -void WrapperPersistent<T>::operator delete(void* object) -{ - WrapperPersistentNode* persistent = static_cast<WrapperPersistentNode*>(object); - persistent->region()->free(persistent); -} - // RootsAccessor for Persistent that provides access to thread-local list // of persistent handles. Can only be used to create handles that // are constructed and destructed on the same thread.
diff --git a/sky/engine/platform/heap/ThreadState.cpp b/sky/engine/platform/heap/ThreadState.cpp index a80ff00..39bff37 100644 --- a/sky/engine/platform/heap/ThreadState.cpp +++ b/sky/engine/platform/heap/ThreadState.cpp
@@ -82,10 +82,6 @@ #endif } -// The maximum number of WrapperPersistentRegions to keep around in the -// m_pooledWrapperPersistentRegions pool. -static const size_t MaxPooledWrapperPersistentRegionCount = 2; - WTF::ThreadSpecific<ThreadState*>* ThreadState::s_threadSpecific = 0; uint8_t ThreadState::s_mainThreadStateStorage[sizeof(ThreadState)]; SafePointBarrier* ThreadState::s_safePointBarrier = 0; @@ -197,9 +193,6 @@ ThreadState::ThreadState() : m_thread(currentThread()) - , m_liveWrapperPersistents(new WrapperPersistentRegion()) - , m_pooledWrapperPersistents(0) - , m_pooledWrapperPersistentRegionCount(0) , m_persistents(adoptPtr(new PersistentAnchor())) , m_startOfStack(reinterpret_cast<intptr_t*>(getStackStart())) , m_endOfStack(reinterpret_cast<intptr_t*>(getStackStart())) @@ -235,14 +228,6 @@ for (int i = 0; i < NumberOfHeaps; i++) delete m_heaps[i]; deleteAllValues(m_interruptors); - while (m_liveWrapperPersistents) { - WrapperPersistentRegion* region = WrapperPersistentRegion::removeHead(&m_liveWrapperPersistents); - delete region; - } - while (m_pooledWrapperPersistents) { - WrapperPersistentRegion* region = WrapperPersistentRegion::removeHead(&m_pooledWrapperPersistents); - delete region; - } **s_threadSpecific = 0; } @@ -410,7 +395,6 @@ void ThreadState::visitPersistents(Visitor* visitor) { m_persistents->trace(visitor); - WrapperPersistentRegion::trace(m_liveWrapperPersistents, visitor); } bool ThreadState::checkAndMarkPointer(Visitor* visitor, Address address) @@ -530,34 +514,6 @@ return m_weakCallbackStack->popAndInvokeCallback<WeaknessProcessing>(&m_weakCallbackStack, visitor); } -WrapperPersistentRegion* ThreadState::takeWrapperPersistentRegion() -{ - WrapperPersistentRegion* region; - if (m_pooledWrapperPersistentRegionCount) { - region = WrapperPersistentRegion::removeHead(&m_pooledWrapperPersistents); - m_pooledWrapperPersistentRegionCount--; - } else { - region = new WrapperPersistentRegion(); - } - ASSERT(region); - WrapperPersistentRegion::insertHead(&m_liveWrapperPersistents, region); - return region; -} - -void ThreadState::freeWrapperPersistentRegion(WrapperPersistentRegion* region) -{ - if (!region->removeIfNotLast(&m_liveWrapperPersistents)) - return; - - // Region was removed, ie. it was not the last region in the list. - if (m_pooledWrapperPersistentRegionCount < MaxPooledWrapperPersistentRegionCount) { - WrapperPersistentRegion::insertHead(&m_pooledWrapperPersistents, region); - m_pooledWrapperPersistentRegionCount++; - } else { - delete region; - } -} - PersistentNode* ThreadState::globalRoots() { AtomicallyInitializedStatic(PersistentNode*, anchor = new PersistentAnchor);
diff --git a/sky/engine/platform/heap/ThreadState.h b/sky/engine/platform/heap/ThreadState.h index 441f82f..63118f9 100644 --- a/sky/engine/platform/heap/ThreadState.h +++ b/sky/engine/platform/heap/ThreadState.h
@@ -56,7 +56,6 @@ class HeapObjectHeader; class PageMemory; class PersistentNode; -class WrapperPersistentRegion; class Visitor; class SafePointBarrier; class SafePointAwareMutexLocker; @@ -539,14 +538,6 @@ BaseHeapPage* contains(void* pointer) { return contains(reinterpret_cast<Address>(pointer)); } BaseHeapPage* contains(const void* pointer) { return contains(const_cast<void*>(pointer)); } - WrapperPersistentRegion* wrapperRoots() const - { - ASSERT(m_liveWrapperPersistents); - return m_liveWrapperPersistents; - } - WrapperPersistentRegion* takeWrapperPersistentRegion(); - void freeWrapperPersistentRegion(WrapperPersistentRegion*); - // List of persistent roots allocated on the given thread. PersistentNode* roots() const { return m_persistents.get(); } @@ -671,9 +662,6 @@ static uint8_t s_mainThreadStateStorage[]; ThreadIdentifier m_thread; - WrapperPersistentRegion* m_liveWrapperPersistents; - WrapperPersistentRegion* m_pooledWrapperPersistents; - size_t m_pooledWrapperPersistentRegionCount; OwnPtr<PersistentNode> m_persistents; StackState m_stackState; intptr_t* m_startOfStack;