diff options
Diffstat (limited to 'Source/WebCore/dom/StringCallback.cpp')
-rw-r--r-- | Source/WebCore/dom/StringCallback.cpp | 32 |
1 files changed, 4 insertions, 28 deletions
diff --git a/Source/WebCore/dom/StringCallback.cpp b/Source/WebCore/dom/StringCallback.cpp index b54105fea..8253b4b46 100644 --- a/Source/WebCore/dom/StringCallback.cpp +++ b/Source/WebCore/dom/StringCallback.cpp @@ -36,36 +36,12 @@ namespace WebCore { -namespace { - -class DispatchCallbackTask : public ScriptExecutionContext::Task { -public: - static PassOwnPtr<DispatchCallbackTask> create(PassRefPtr<StringCallback> callback, const String& data) - { - return adoptPtr(new DispatchCallbackTask(callback, data)); - } - - virtual void performTask(ScriptExecutionContext*) override - { - m_callback->handleEvent(m_data); - } - -private: - DispatchCallbackTask(PassRefPtr<StringCallback> callback, const String& data) - : m_callback(callback) - , m_data(data) - { - } - - RefPtr<StringCallback> m_callback; - const String m_data; -}; - -} // namespace - void StringCallback::scheduleCallback(ScriptExecutionContext* context, const String& data) { - context->postTask(DispatchCallbackTask::create(this, data)); + RefPtr<StringCallback> protectedThis(this); + context->postTask([protectedThis, data] (ScriptExecutionContext&) { + protectedThis->handleEvent(data); + }); } } // namespace WebCore |