Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(86)

Unified Diff: Source/WebCore/bindings/v8/V8GCController.cpp

Issue 7697013: Merge 93397 (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/835/
Patch Set: Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « LayoutTests/platform/chromium/test_expectations.txt ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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()
« no previous file with comments | « LayoutTests/platform/chromium/test_expectations.txt ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698