Diff
Modified: trunk/Source/WebCore/ChangeLog (113805 => 113806)
--- trunk/Source/WebCore/ChangeLog 2012-04-11 01:46:49 UTC (rev 113805)
+++ trunk/Source/WebCore/ChangeLog 2012-04-11 01:57:03 UTC (rev 113806)
@@ -1,3 +1,37 @@
+2012-04-10 Adam Klein <ad...@chromium.org>
+
+ Store V8 SVGElementInstance wrappers in the regular DOMObjectMap
+ https://bugs.webkit.org/show_bug.cgi?id=83615
+
+ Reviewed by Adam Barth.
+
+ Historically, these wrappers had their own map, but there doesn't seem
+ to be any particular reason for this. The V8GCController doesn't
+ treat them specially (which is the reason you normally need a separate
+ wrapper map).
+
+ No new tests, no expected change in behavior.
+
+ * bindings/scripts/CodeGeneratorV8.pm:
+ (GetDomMapName):
+ * bindings/v8/DOMDataStore.cpp:
+ (WebCore::DOMDataStore::DOMDataStore):
+ (WebCore::DOMDataStore::getDOMWrapperMap):
+ * bindings/v8/DOMDataStore.h:
+ (DOMDataStore):
+ * bindings/v8/ScopedDOMDataStore.cpp:
+ (WebCore::ScopedDOMDataStore::ScopedDOMDataStore):
+ (WebCore::ScopedDOMDataStore::~ScopedDOMDataStore):
+ * bindings/v8/StaticDOMDataStore.cpp:
+ (WebCore::StaticDOMDataStore::StaticDOMDataStore):
+ * bindings/v8/StaticDOMDataStore.h:
+ (StaticDOMDataStore):
+ * bindings/v8/V8DOMMap.cpp:
+ (WebCore::removeAllDOMObjects):
+ * bindings/v8/V8DOMMap.h:
+ (WebCore):
+ * bindings/v8/V8DOMWrapper.cpp:
+
2012-04-10 Noel Gordon <noel.gor...@gmail.com>
[Qt] Separate image encoding from dataURL construction
Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm (113805 => 113806)
--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm 2012-04-11 01:46:49 UTC (rev 113805)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm 2012-04-11 01:57:03 UTC (rev 113806)
@@ -3185,7 +3185,6 @@
my $dataNode = shift;
my $type = shift;
- return "DOMSVGElementInstance" if $type eq "SVGElementInstance";
return "ActiveDOMNode" if (IsNodeSubType($dataNode) && $dataNode->extendedAttributes->{"ActiveDOMObject"});
return "DOMNode" if IsNodeSubType($dataNode);
return "ActiveDOMObject" if $dataNode->extendedAttributes->{"ActiveDOMObject"};
Modified: trunk/Source/WebCore/bindings/v8/DOMDataStore.cpp (113805 => 113806)
--- trunk/Source/WebCore/bindings/v8/DOMDataStore.cpp 2012-04-11 01:46:49 UTC (rev 113805)
+++ trunk/Source/WebCore/bindings/v8/DOMDataStore.cpp 2012-04-11 01:57:03 UTC (rev 113806)
@@ -89,9 +89,6 @@
, m_activeDomNodeMap(0)
, m_domObjectMap(0)
, m_activeDomObjectMap(0)
-#if ENABLE(SVG)
- , m_domSvgElementInstanceMap(0)
-#endif
{
}
@@ -115,10 +112,6 @@
return m_domObjectMap;
case ActiveDOMObjectMap:
return m_activeDomObjectMap;
-#if ENABLE(SVG)
- case DOMSVGElementInstanceMap:
- return m_domSvgElementInstanceMap;
-#endif
}
ASSERT_NOT_REACHED();
@@ -165,15 +158,4 @@
node->deref(); // Nobody overrides Node::deref so it's safe
}
-#if ENABLE(SVG)
-
-void DOMDataStore::weakSVGElementInstanceCallback(v8::Persistent<v8::Value> v8Object, void* domObject)
-{
- v8::HandleScope scope;
- ASSERT(v8Object->IsObject());
- DOMData::handleWeakObject(DOMDataStore::DOMSVGElementInstanceMap, v8::Persistent<v8::Object>::Cast(v8Object), static_cast<SVGElementInstance*>(domObject));
-}
-
-#endif // ENABLE(SVG)
-
} // namespace WebCore
Modified: trunk/Source/WebCore/bindings/v8/DOMDataStore.h (113805 => 113806)
--- trunk/Source/WebCore/bindings/v8/DOMDataStore.h 2012-04-11 01:46:49 UTC (rev 113805)
+++ trunk/Source/WebCore/bindings/v8/DOMDataStore.h 2012-04-11 01:57:03 UTC (rev 113806)
@@ -67,9 +67,6 @@
ActiveDOMNodeMap,
DOMObjectMap,
ActiveDOMObjectMap,
-#if ENABLE(SVG)
- DOMSVGElementInstanceMap
-#endif
};
DOMDataStore();
@@ -84,9 +81,6 @@
DOMNodeMapping& activeDomNodeMap() { return *m_activeDomNodeMap; }
DOMWrapperMap<void>& domObjectMap() { return *m_domObjectMap; }
DOMWrapperMap<void>& activeDomObjectMap() { return *m_activeDomObjectMap; }
-#if ENABLE(SVG)
- DOMWrapperMap<SVGElementInstance>& domSvgElementInstanceMap() { return *m_domSvgElementInstanceMap; }
-#endif
// Need by V8GCController.
static void weakActiveDOMObjectCallback(v8::Persistent<v8::Value> v8Object, void* domObject);
@@ -94,17 +88,11 @@
protected:
static void weakDOMObjectCallback(v8::Persistent<v8::Value> v8Object, void* domObject);
-#if ENABLE(SVG)
- static void weakSVGElementInstanceCallback(v8::Persistent<v8::Value> v8Object, void* domObject);
-#endif
DOMNodeMapping* m_domNodeMap;
DOMNodeMapping* m_activeDomNodeMap;
DOMWrapperMap<void>* m_domObjectMap;
DOMWrapperMap<void>* m_activeDomObjectMap;
-#if ENABLE(SVG)
- DOMWrapperMap<SVGElementInstance>* m_domSvgElementInstanceMap;
-#endif
};
} // namespace WebCore
Modified: trunk/Source/WebCore/bindings/v8/ScopedDOMDataStore.cpp (113805 => 113806)
--- trunk/Source/WebCore/bindings/v8/ScopedDOMDataStore.cpp 2012-04-11 01:46:49 UTC (rev 113805)
+++ trunk/Source/WebCore/bindings/v8/ScopedDOMDataStore.cpp 2012-04-11 01:57:03 UTC (rev 113806)
@@ -40,9 +40,6 @@
m_activeDomNodeMap = new DOMWrapperMap<Node>(&DOMDataStore::weakNodeCallback);
m_domObjectMap = new DOMWrapperMap<void>(&DOMDataStore::weakDOMObjectCallback);
m_activeDomObjectMap = new DOMWrapperMap<void>(&DOMDataStore::weakActiveDOMObjectCallback);
-#if ENABLE(SVG)
- m_domSvgElementInstanceMap = new DOMWrapperMap<SVGElementInstance>(&DOMDataStore::weakSVGElementInstanceCallback);
-#endif
}
ScopedDOMDataStore::~ScopedDOMDataStore()
@@ -51,9 +48,6 @@
delete m_activeDomNodeMap;
delete m_domObjectMap;
delete m_activeDomObjectMap;
-#if ENABLE(SVG)
- delete m_domSvgElementInstanceMap;
-#endif
}
} // namespace WebCore
Modified: trunk/Source/WebCore/bindings/v8/StaticDOMDataStore.cpp (113805 => 113806)
--- trunk/Source/WebCore/bindings/v8/StaticDOMDataStore.cpp 2012-04-11 01:46:49 UTC (rev 113805)
+++ trunk/Source/WebCore/bindings/v8/StaticDOMDataStore.cpp 2012-04-11 01:57:03 UTC (rev 113806)
@@ -40,17 +40,11 @@
, m_staticActiveDomNodeMap(&DOMDataStore::weakNodeCallback)
, m_staticDomObjectMap(&DOMDataStore::weakDOMObjectCallback)
, m_staticActiveDomObjectMap(&DOMDataStore::weakActiveDOMObjectCallback)
-#if ENABLE(SVG)
- , m_staticDomSvgElementInstanceMap(&DOMDataStore::weakSVGElementInstanceCallback)
-#endif
{
m_domNodeMap = &m_staticDomNodeMap;
m_activeDomNodeMap = &m_staticActiveDomNodeMap;
m_domObjectMap = &m_staticDomObjectMap;
m_activeDomObjectMap = &m_staticActiveDomObjectMap;
-#if ENABLE(SVG)
- m_domSvgElementInstanceMap = &m_staticDomSvgElementInstanceMap;
-#endif
V8BindingPerIsolateData::current()->registerDOMDataStore(this);
}
Modified: trunk/Source/WebCore/bindings/v8/StaticDOMDataStore.h (113805 => 113806)
--- trunk/Source/WebCore/bindings/v8/StaticDOMDataStore.h 2012-04-11 01:46:49 UTC (rev 113805)
+++ trunk/Source/WebCore/bindings/v8/StaticDOMDataStore.h 2012-04-11 01:57:03 UTC (rev 113806)
@@ -54,9 +54,6 @@
IntrusiveDOMWrapperMap m_staticActiveDomNodeMap;
DOMWrapperMap<void> m_staticDomObjectMap;
DOMWrapperMap<void> m_staticActiveDomObjectMap;
-#if ENABLE(SVG)
- DOMWrapperMap<SVGElementInstance> m_staticDomSvgElementInstanceMap;
-#endif
};
} // namespace WebCore
Modified: trunk/Source/WebCore/bindings/v8/V8DOMMap.cpp (113805 => 113806)
--- trunk/Source/WebCore/bindings/v8/V8DOMMap.cpp 2012-04-11 01:46:49 UTC (rev 113805)
+++ trunk/Source/WebCore/bindings/v8/V8DOMMap.cpp 2012-04-11 01:57:03 UTC (rev 113806)
@@ -79,15 +79,6 @@
return getDOMDataStore().activeDomObjectMap();
}
-#if ENABLE(SVG)
-
-DOMWrapperMap<SVGElementInstance>& getDOMSVGElementInstanceMap()
-{
- return getDOMDataStore().domSvgElementInstanceMap();
-}
-
-#endif // ENABLE(SVG)
-
void removeAllDOMObjects()
{
DOMDataStore& store = getDOMDataStore();
@@ -101,11 +92,6 @@
// Remove all active DOM nodes.
DOMData::removeObjectsFromWrapperMap<Node>(&store, store.activeDomNodeMap());
-
-#if ENABLE(SVG)
- // Remove all SVG element instances in the wrapper map.
- DOMData::removeObjectsFromWrapperMap<SVGElementInstance>(&store, store.domSvgElementInstanceMap());
-#endif
}
// Remove all DOM objects in the wrapper map.
@@ -163,20 +149,4 @@
}
}
-#if ENABLE(SVG)
-
-void visitDOMSVGElementInstances(DOMWrapperMap<SVGElementInstance>::Visitor* visitor)
-{
- v8::HandleScope scope;
-
- DOMDataList& list = DOMDataStore::allStores();
- for (size_t i = 0; i < list.size(); ++i) {
- DOMDataStore* store = list[i];
-
- store->domSvgElementInstanceMap().visit(store, visitor);
- }
-}
-
-#endif
-
} // namespace WebCore
Modified: trunk/Source/WebCore/bindings/v8/V8DOMMap.h (113805 => 113806)
--- trunk/Source/WebCore/bindings/v8/V8DOMMap.h 2012-04-11 01:46:49 UTC (rev 113805)
+++ trunk/Source/WebCore/bindings/v8/V8DOMMap.h 2012-04-11 01:57:03 UTC (rev 113806)
@@ -38,9 +38,6 @@
namespace WebCore {
class DOMDataStore;
class Node;
-#if ENABLE(SVG)
- class SVGElementInstance;
-#endif
template <class KeyType, class ValueType> class AbstractWeakReferenceMap {
public:
@@ -170,12 +167,6 @@
// This should be called to remove all DOM objects associated with the current thread when it is tearing down.
void removeAllDOMObjects();
-#if ENABLE(SVG)
- // A map for SVGElementInstances to its JS wrapper.
- DOMWrapperMap<SVGElementInstance>& getDOMSVGElementInstanceMap();
- void visitSVGElementInstances(DOMWrapperMap<SVGElementInstance>::Visitor*);
-#endif
-
void enableFasterDOMStoreAccess();
} // namespace WebCore
Modified: trunk/Source/WebCore/bindings/v8/V8DOMWrapper.cpp (113805 => 113806)
--- trunk/Source/WebCore/bindings/v8/V8DOMWrapper.cpp 2012-04-11 01:46:49 UTC (rev 113805)
+++ trunk/Source/WebCore/bindings/v8/V8DOMWrapper.cpp 2012-04-11 01:57:03 UTC (rev 113806)
@@ -36,7 +36,6 @@
#include "EventTargetHeaders.h"
#include "EventTargetInterfaces.h"
#include "FrameLoaderClient.h"
-#include "SVGElementInstance.h"
#include "SafeAllocation.h"
#include "StylePropertySet.h"
#include "V8AbstractEventListener.h"