| Index: Source/WebCore/bindings/v8/V8GCController.cpp
|
| ===================================================================
|
| --- Source/WebCore/bindings/v8/V8GCController.cpp (revision 93494)
|
| +++ Source/WebCore/bindings/v8/V8GCController.cpp (working copy)
|
| @@ -286,40 +286,6 @@
|
| return GroupId(root);
|
| }
|
|
|
| -static GroupId calculateGroupId(StyleBase* styleBase)
|
| -{
|
| - ASSERT(styleBase);
|
| - StyleBase* current = styleBase;
|
| - StyleSheet* styleSheet = 0;
|
| - while (true) {
|
| - // Special case: CSSStyleDeclarations might be either inline and in this case
|
| - // we need to group them with their node or regular ones.
|
| - if (current->isMutableStyleDeclaration()) {
|
| - CSSMutableStyleDeclaration* cssMutableStyleDeclaration = static_cast<CSSMutableStyleDeclaration*>(current);
|
| - if (cssMutableStyleDeclaration->isInlineStyleDeclaration())
|
| - return calculateGroupId(cssMutableStyleDeclaration->node());
|
| - // Either we have no parent, or this parent is a CSSRule.
|
| - ASSERT(cssMutableStyleDeclaration->parent() == cssMutableStyleDeclaration->parentRule());
|
| - }
|
| -
|
| - if (current->isStyleSheet())
|
| - styleSheet = static_cast<StyleSheet*>(current);
|
| -
|
| - StyleBase* parent = current->parent();
|
| - if (!parent)
|
| - break;
|
| - current = parent;
|
| - }
|
| -
|
| - if (styleSheet) {
|
| - if (Node* ownerNode = styleSheet->ownerNode())
|
| - return calculateGroupId(ownerNode);
|
| - return GroupId(styleSheet);
|
| - }
|
| -
|
| - return GroupId(current);
|
| -}
|
| -
|
| class GrouperVisitor : public DOMWrapperMap<Node>::Visitor, public DOMWrapperMap<void>::Visitor {
|
| public:
|
| void visitDOMWrapper(DOMDataStore* store, Node* node, v8::Persistent<v8::Object> wrapper)
|
| @@ -347,49 +313,6 @@
|
|
|
| void visitDOMWrapper(DOMDataStore* store, void* object, v8::Persistent<v8::Object> wrapper)
|
| {
|
| - WrapperTypeInfo* typeInfo = V8DOMWrapper::domWrapperType(wrapper);
|
| -
|
| - if (typeInfo->isSubclass(&V8StyleSheetList::info)) {
|
| - StyleSheetList* styleSheetList = static_cast<StyleSheetList*>(object);
|
| - GroupId groupId(styleSheetList);
|
| - if (Document* document = styleSheetList->document())
|
| - groupId = GroupId(document);
|
| - m_grouper.append(GrouperItem(groupId, wrapper));
|
| -
|
| - } else if (typeInfo->isSubclass(&V8DOMImplementation::info)) {
|
| - DOMImplementation* domImplementation = static_cast<DOMImplementation*>(object);
|
| - GroupId groupId(domImplementation);
|
| - if (Document* document = domImplementation->document())
|
| - groupId = GroupId(document);
|
| - m_grouper.append(GrouperItem(groupId, wrapper));
|
| -
|
| - } else if (typeInfo->isSubclass(&V8StyleSheet::info) || typeInfo->isSubclass(&V8CSSRule::info)) {
|
| - m_grouper.append(GrouperItem(calculateGroupId(static_cast<StyleBase*>(object)), wrapper));
|
| -
|
| - } else if (typeInfo->isSubclass(&V8CSSStyleDeclaration::info)) {
|
| - CSSStyleDeclaration* cssStyleDeclaration = static_cast<CSSStyleDeclaration*>(object);
|
| -
|
| - GroupId groupId = calculateGroupId(cssStyleDeclaration);
|
| - m_grouper.append(GrouperItem(groupId, wrapper));
|
| -
|
| - // Keep alive "dirty" primitive values (i.e. the ones that
|
| - // have user-added properties) by creating implicit
|
| - // references between the style declaration and the values
|
| - // in it.
|
| - if (cssStyleDeclaration->isMutableStyleDeclaration()) {
|
| - CSSMutableStyleDeclaration* cssMutableStyleDeclaration = static_cast<CSSMutableStyleDeclaration*>(cssStyleDeclaration);
|
| - Vector<v8::Persistent<v8::Value> > values;
|
| - values.reserveCapacity(cssMutableStyleDeclaration->length());
|
| - CSSMutableStyleDeclaration::const_iterator end = cssMutableStyleDeclaration->end();
|
| - for (CSSMutableStyleDeclaration::const_iterator it = cssMutableStyleDeclaration->begin(); it != end; ++it) {
|
| - v8::Persistent<v8::Object> value = store->domObjectMap().get(it->value());
|
| - if (!value.IsEmpty() && value->IsDirty())
|
| - values.append(value);
|
| - }
|
| - if (!values.isEmpty())
|
| - v8::V8::AddImplicitReferences(wrapper, values.data(), values.size());
|
| - }
|
| - }
|
| }
|
|
|
| void applyGrouping()
|
|
|