Title: [126690] trunk/Source/WebCore
- Revision
- 126690
- Author
- [email protected]
- Date
- 2012-08-25 16:06:24 -0700 (Sat, 25 Aug 2012)
Log Message
[V8] V8NodeFilterCondition should use ScopedPersistent
https://bugs.webkit.org/show_bug.cgi?id=95010
Reviewed by Eric Seidel.
V8NodeFilterCondition just re-implements ScopedPersistent by hand.
* bindings/v8/V8NodeFilterCondition.cpp:
(WebCore::V8NodeFilterCondition::V8NodeFilterCondition):
(WebCore::V8NodeFilterCondition::~V8NodeFilterCondition):
(WebCore::V8NodeFilterCondition::acceptNode):
* bindings/v8/V8NodeFilterCondition.h:
(WebCore):
(V8NodeFilterCondition):
(WebCore::V8NodeFilterCondition::create):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (126689 => 126690)
--- trunk/Source/WebCore/ChangeLog 2012-08-25 22:34:43 UTC (rev 126689)
+++ trunk/Source/WebCore/ChangeLog 2012-08-25 23:06:24 UTC (rev 126690)
@@ -1,3 +1,21 @@
+2012-08-25 Adam Barth <[email protected]>
+
+ [V8] V8NodeFilterCondition should use ScopedPersistent
+ https://bugs.webkit.org/show_bug.cgi?id=95010
+
+ Reviewed by Eric Seidel.
+
+ V8NodeFilterCondition just re-implements ScopedPersistent by hand.
+
+ * bindings/v8/V8NodeFilterCondition.cpp:
+ (WebCore::V8NodeFilterCondition::V8NodeFilterCondition):
+ (WebCore::V8NodeFilterCondition::~V8NodeFilterCondition):
+ (WebCore::V8NodeFilterCondition::acceptNode):
+ * bindings/v8/V8NodeFilterCondition.h:
+ (WebCore):
+ (V8NodeFilterCondition):
+ (WebCore::V8NodeFilterCondition::create):
+
2012-07-18 Robert Hogan <[email protected]>
Tables with just border-style set on the cells do not get a grid
Modified: trunk/Source/WebCore/bindings/v8/V8NodeFilterCondition.cpp (126689 => 126690)
--- trunk/Source/WebCore/bindings/v8/V8NodeFilterCondition.cpp 2012-08-25 22:34:43 UTC (rev 126689)
+++ trunk/Source/WebCore/bindings/v8/V8NodeFilterCondition.cpp 2012-08-25 23:06:24 UTC (rev 126690)
@@ -36,26 +36,17 @@
#include "ScriptController.h"
#include "ScriptState.h"
#include "V8Node.h"
-
#include <wtf/OwnArrayPtr.h>
namespace WebCore {
V8NodeFilterCondition::V8NodeFilterCondition(v8::Handle<v8::Value> filter)
- : m_filter(v8::Persistent<v8::Value>::New(filter))
+ : m_filter(filter)
{
-#ifndef NDEBUG
- V8GCController::registerGlobalHandle(NODE_FILTER, this, m_filter);
-#endif
}
V8NodeFilterCondition::~V8NodeFilterCondition()
{
-#ifndef NDEBUG
- V8GCController::unregisterGlobalHandle(this, m_filter);
-#endif
- m_filter.Dispose();
- m_filter.Clear();
}
short V8NodeFilterCondition::acceptNode(ScriptState* state, Node* node) const
@@ -69,7 +60,7 @@
v8::Handle<v8::Function> callback;
if (m_filter->IsFunction())
- callback = v8::Handle<v8::Function>::Cast(m_filter);
+ callback = v8::Handle<v8::Function>::Cast(m_filter.get());
else {
v8::Local<v8::Value> value = m_filter->ToObject()->Get(v8::String::New("acceptNode"));
if (!value->IsFunction()) {
Modified: trunk/Source/WebCore/bindings/v8/V8NodeFilterCondition.h (126689 => 126690)
--- trunk/Source/WebCore/bindings/v8/V8NodeFilterCondition.h 2012-08-25 22:34:43 UTC (rev 126689)
+++ trunk/Source/WebCore/bindings/v8/V8NodeFilterCondition.h 2012-08-25 23:06:24 UTC (rev 126690)
@@ -32,32 +32,31 @@
#define V8NodeFilterCondition_h
#include "NodeFilterCondition.h"
+#include "ScopedPersistent.h"
#include <v8.h>
#include <wtf/PassRefPtr.h>
-// NodeFilter is a _javascript_ function that takes a Node as parameter and returns a short (ACCEPT, SKIP, REJECT) as the result.
namespace WebCore {
- class Node;
- class ScriptState;
+class Node;
+class ScriptState;
- // NodeFilterCondition is a wrapper around a NodeFilter JS function.
- class V8NodeFilterCondition : public NodeFilterCondition {
- public:
- static PassRefPtr<V8NodeFilterCondition> create(v8::Handle<v8::Value> filter)
- {
- return adoptRef(new V8NodeFilterCondition(filter));
- }
+class V8NodeFilterCondition : public NodeFilterCondition {
+public:
+ static PassRefPtr<V8NodeFilterCondition> create(v8::Handle<v8::Value> filter)
+ {
+ return adoptRef(new V8NodeFilterCondition(filter));
+ }
- virtual ~V8NodeFilterCondition();
+ virtual ~V8NodeFilterCondition();
- virtual short acceptNode(ScriptState*, Node*) const;
+ virtual short acceptNode(ScriptState*, Node*) const;
- private:
- explicit V8NodeFilterCondition(v8::Handle<v8::Value> filter);
+private:
+ explicit V8NodeFilterCondition(v8::Handle<v8::Value> filter);
- mutable v8::Persistent<v8::Value> m_filter;
- };
+ ScopedPersistent<v8::Value> m_filter;
+};
} // namespace WebCore
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes