Chromium Code Reviews| Index: Source/modules/webdatabase/SQLCallbackWrapper.h |
| diff --git a/Source/modules/webdatabase/SQLCallbackWrapper.h b/Source/modules/webdatabase/SQLCallbackWrapper.h |
| index 6343194507e994b95b217626731b9e05589f378d..405e8cf7325e30af1178f38fa70268a1d456ae72 100644 |
| --- a/Source/modules/webdatabase/SQLCallbackWrapper.h |
| +++ b/Source/modules/webdatabase/SQLCallbackWrapper.h |
| @@ -42,7 +42,7 @@ namespace WebCore { |
| // - by unwrapping and then dereferencing normally - on context thread only |
| template<typename T> class SQLCallbackWrapper { |
| public: |
| - SQLCallbackWrapper(PassRefPtr<T> callback, ExecutionContext* executionContext) |
| + SQLCallbackWrapper(PassOwnPtr<T> callback, ExecutionContext* executionContext) |
| : m_callback(callback) |
| , m_executionContext(m_callback ? executionContext : 0) |
| { |
| @@ -57,7 +57,7 @@ public: |
| void clear() |
| { |
| ExecutionContext* context; |
| - T* callback; |
| + OwnPtr<T> callback; |
| { |
| MutexLocker locker(m_mutex); |
| if (!m_callback) { |
| @@ -70,12 +70,12 @@ public: |
| return; |
| } |
| context = m_executionContext.release().leakRef(); |
| - callback = m_callback.release().leakRef(); |
| + callback = m_callback.release(); |
| } |
| - context->postTask(SafeReleaseTask::create(callback)); |
| + context->postTask(SafeReleaseTask::create(callback.release())); |
| } |
| - PassRefPtr<T> unwrap() |
| + PassOwnPtr<T> unwrap() |
|
abarth-chromium
2013/12/04 01:55:50
release() ?
adamk
2013/12/04 02:08:26
Don't want to touch this in this change; unwrap()
|
| { |
| MutexLocker locker(m_mutex); |
| ASSERT(!m_callback || m_executionContext->isContextThread()); |
| @@ -89,7 +89,7 @@ public: |
| private: |
| class SafeReleaseTask : public ExecutionContextTask { |
| public: |
| - static PassOwnPtr<SafeReleaseTask> create(T* callbackToRelease) |
| + static PassOwnPtr<SafeReleaseTask> create(PassOwnPtr<T> callbackToRelease) |
| { |
| return adoptPtr(new SafeReleaseTask(callbackToRelease)); |
| } |
| @@ -97,23 +97,23 @@ private: |
| virtual void performTask(ExecutionContext* context) |
| { |
| ASSERT(m_callbackToRelease && context && context->isContextThread()); |
| - m_callbackToRelease->deref(); |
| + m_callbackToRelease.clear(); |
| context->deref(); |
| } |
| virtual bool isCleanupTask() const { return true; } |
| private: |
| - explicit SafeReleaseTask(T* callbackToRelease) |
| + explicit SafeReleaseTask(PassOwnPtr<T> callbackToRelease) |
| : m_callbackToRelease(callbackToRelease) |
| { |
| } |
| - T* m_callbackToRelease; |
| + OwnPtr<T> m_callbackToRelease; |
| }; |
| Mutex m_mutex; |
| - RefPtr<T> m_callback; |
| + OwnPtr<T> m_callback; |
| RefPtr<ExecutionContext> m_executionContext; |
| }; |