Chromium Code Reviews| Index: Source/modules/indexeddb/IDBCursor.h |
| diff --git a/Source/modules/indexeddb/IDBCursor.h b/Source/modules/indexeddb/IDBCursor.h |
| index cf26440f5e2b0ce4ec1294ce7fd3e5639c27889d..b56cde76bc059f454163ebb98daaafb442e6d95e 100644 |
| --- a/Source/modules/indexeddb/IDBCursor.h |
| +++ b/Source/modules/indexeddb/IDBCursor.h |
| @@ -46,7 +46,7 @@ class IDBRequest; |
| class ScriptExecutionContext; |
| class SharedBuffer; |
| -class IDBCursor : public ScriptWrappable, public RefCounted<IDBCursor> { |
| +class IDBCursor : public ScriptWrappable, public WTF::RefCountedBase { |
| public: |
| static const AtomicString& directionNext(); |
| static const AtomicString& directionNextUnique(); |
| @@ -80,6 +80,15 @@ public: |
| void close(); |
| void setValueReady(PassRefPtr<IDBKey>, PassRefPtr<IDBKey> primaryKey, PassRefPtr<SharedBuffer> value); |
| PassRefPtr<IDBKey> idbPrimaryKey() { return m_primaryKey; } |
| + IDBRequest* request() { return m_request.get(); } |
| + |
| + void deref() |
|
alecflett
2013/09/06 17:56:35
can/should be OVERRIDE?
jsbell
2013/09/06 18:07:43
Nope, not here. T::deref() is required by the RefP
|
| + { |
| + if (derefBase()) |
| + delete this; |
| + else if (hasOneRef()) |
| + checkForReferenceCycle(); |
| + } |
| protected: |
| IDBCursor(PassRefPtr<IDBCursorBackendInterface>, IndexedDB::CursorDirection, IDBRequest*, IDBAny* source, IDBTransaction*); |
| @@ -88,6 +97,7 @@ protected: |
| private: |
| PassRefPtr<IDBObjectStore> effectiveObjectStore(); |
| + void checkForReferenceCycle(); |
| bool isDeleted() const; |
| RefPtr<IDBCursorBackendInterface> m_backend; |
| @@ -95,7 +105,6 @@ private: |
| const IndexedDB::CursorDirection m_direction; |
| RefPtr<IDBAny> m_source; |
| RefPtr<IDBTransaction> m_transaction; |
| - IDBTransaction::OpenCursorNotifier m_transactionNotifier; |
| bool m_gotValue; |
| bool m_keyDirty; |
| bool m_primaryKeyDirty; |