diff options
Diffstat (limited to 'Source/WebCore/bindings/js/JSNodeFilterCondition.h')
-rw-r--r-- | Source/WebCore/bindings/js/JSNodeFilterCondition.h | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/Source/WebCore/bindings/js/JSNodeFilterCondition.h b/Source/WebCore/bindings/js/JSNodeFilterCondition.h index 14b0c1d..80148f1 100644 --- a/Source/WebCore/bindings/js/JSNodeFilterCondition.h +++ b/Source/WebCore/bindings/js/JSNodeFilterCondition.h @@ -21,27 +21,32 @@ #define JSNodeFilterCondition_h #include "NodeFilterCondition.h" +#include <heap/Weak.h> #include <runtime/JSValue.h> #include <wtf/PassRefPtr.h> namespace WebCore { class Node; + class NodeFilter; class JSNodeFilterCondition : public NodeFilterCondition { public: - static PassRefPtr<JSNodeFilterCondition> create(JSC::JSValue filter) + static PassRefPtr<JSNodeFilterCondition> create(JSC::JSGlobalData& globalData, NodeFilter* owner, JSC::JSValue filter) { - return adoptRef(new JSNodeFilterCondition(filter)); + return adoptRef(new JSNodeFilterCondition(globalData, owner, filter)); } private: - JSNodeFilterCondition(JSC::JSValue filter); + JSNodeFilterCondition(JSC::JSGlobalData&, NodeFilter* owner, JSC::JSValue filter); virtual short acceptNode(ScriptState*, Node*) const; - virtual void markAggregate(JSC::MarkStack&); - mutable JSC::DeprecatedPtr<JSC::Unknown> m_filter; + class WeakOwner : public JSC::WeakHandleOwner { + virtual bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::MarkStack&); + }; + WeakOwner m_weakOwner; + mutable JSC::Weak<JSC::Unknown> m_filter; }; } // namespace WebCore |