Title: [132564] trunk/Source/WebCore
- Revision
- 132564
- Author
- [email protected]
- Date
- 2012-10-25 20:11:50 -0700 (Thu, 25 Oct 2012)
Log Message
[V8] We can merge ActiveDOMObjectPrologueVisitor with ObjectVisitor
https://bugs.webkit.org/show_bug.cgi?id=100430
Reviewed by Eric Seidel.
There's no reason for these visitors to be separate objects anymore.
* bindings/v8/V8GCController.cpp:
(WebCore::ObjectVisitor::ObjectVisitor):
(WebCore::ObjectVisitor::visitDOMWrapper):
(WebCore::V8GCController::majorGCPrologue):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (132563 => 132564)
--- trunk/Source/WebCore/ChangeLog 2012-10-26 03:09:51 UTC (rev 132563)
+++ trunk/Source/WebCore/ChangeLog 2012-10-26 03:11:50 UTC (rev 132564)
@@ -1,3 +1,17 @@
+2012-10-25 Adam Barth <[email protected]>
+
+ [V8] We can merge ActiveDOMObjectPrologueVisitor with ObjectVisitor
+ https://bugs.webkit.org/show_bug.cgi?id=100430
+
+ Reviewed by Eric Seidel.
+
+ There's no reason for these visitors to be separate objects anymore.
+
+ * bindings/v8/V8GCController.cpp:
+ (WebCore::ObjectVisitor::ObjectVisitor):
+ (WebCore::ObjectVisitor::visitDOMWrapper):
+ (WebCore::V8GCController::majorGCPrologue):
+
2012-10-25 Tony Chang <[email protected]>
Remove unused static methods from DOMTimer.h
Modified: trunk/Source/WebCore/bindings/v8/V8GCController.cpp (132563 => 132564)
--- trunk/Source/WebCore/bindings/v8/V8GCController.cpp 2012-10-26 03:09:51 UTC (rev 132563)
+++ trunk/Source/WebCore/bindings/v8/V8GCController.cpp 2012-10-26 03:11:50 UTC (rev 132564)
@@ -67,16 +67,16 @@
namespace WebCore {
-class ActiveDOMObjectPrologueVisitor : public DOMWrapperVisitor<void> {
+class ObjectVisitor : public DOMWrapperVisitor<void> {
public:
- explicit ActiveDOMObjectPrologueVisitor(Vector<v8::Persistent<v8::Value> >* liveObjects)
+ explicit ObjectVisitor(Vector<v8::Persistent<v8::Value> >* liveObjects)
: m_liveObjects(liveObjects)
{
}
- void visitDOMWrapper(DOMDataStore*, void* object, v8::Persistent<v8::Object> wrapper)
+ void visitDOMWrapper(DOMDataStore* store, void* object, v8::Persistent<v8::Object> wrapper)
{
- WrapperTypeInfo* type = V8DOMWrapper::domWrapperType(wrapper);
+ WrapperTypeInfo* type = V8DOMWrapper::domWrapperType(wrapper);
if (V8MessagePort::info.equals(type)) {
// Mark each port as in-use if it's entangled. For simplicity's sake,
@@ -85,26 +85,19 @@
MessagePort* port = static_cast<MessagePort*>(object);
if (port->isEntangled() || port->hasPendingActivity())
m_liveObjects->append(wrapper);
- return;
+ } else {
+ ActiveDOMObject* activeDOMObject = type->toActiveDOMObject(wrapper);
+ if (activeDOMObject && activeDOMObject->hasPendingActivity())
+ m_liveObjects->append(wrapper);
}
- ActiveDOMObject* activeDOMObject = type->toActiveDOMObject(wrapper);
- if (activeDOMObject && activeDOMObject->hasPendingActivity())
- m_liveObjects->append(wrapper);
+ type->visitDOMWrapper(store, object, wrapper);
}
private:
Vector<v8::Persistent<v8::Value> >* m_liveObjects;
};
-class ObjectVisitor : public DOMWrapperVisitor<void> {
-public:
- void visitDOMWrapper(DOMDataStore* store, void* object, v8::Persistent<v8::Object> wrapper)
- {
- V8DOMWrapper::domWrapperType(wrapper)->visitDOMWrapper(store, object, wrapper);
- }
-};
-
static void addImplicitReferencesForNodeWithEventListeners(Node* node, v8::Persistent<v8::Object> wrapper)
{
ASSERT(node->hasEventListeners());
@@ -234,18 +227,16 @@
Vector<v8::Persistent<v8::Value> > liveObjects;
liveObjects.append(V8PerIsolateData::current()->ensureLiveRoot());
- ActiveDOMObjectPrologueVisitor activeObjectVisitor(&liveObjects);
- visitActiveDOMObjects(&activeObjectVisitor);
-
NodeVisitor nodeVisitor(&liveObjects);
visitAllDOMNodes(&nodeVisitor);
nodeVisitor.applyGrouping();
- v8::V8::AddObjectGroup(liveObjects.data(), liveObjects.size());
-
- ObjectVisitor objectVisitor;
+ ObjectVisitor objectVisitor(&liveObjects);
visitDOMObjects(&objectVisitor);
+ visitActiveDOMObjects(&objectVisitor);
+ v8::V8::AddObjectGroup(liveObjects.data(), liveObjects.size());
+
V8PerIsolateData* data = ""
data->stringCache()->clearOnGC();
}
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes