| Index: Source/modules/indexeddb/IDBCursorBackendImpl.cpp
|
| diff --git a/Source/modules/indexeddb/IDBCursorBackendImpl.cpp b/Source/modules/indexeddb/IDBCursorBackendImpl.cpp
|
| index 21e6430357580b95edf23f818376da962ac44f13..d2a6bbd68536591c4e3ae14291dce3b7d01baebb 100644
|
| --- a/Source/modules/indexeddb/IDBCursorBackendImpl.cpp
|
| +++ b/Source/modules/indexeddb/IDBCursorBackendImpl.cpp
|
| @@ -40,13 +40,13 @@ namespace WebCore {
|
|
|
| class IDBCursorBackendImpl::CursorIterationOperation : public IDBTransactionBackendImpl::Operation {
|
| public:
|
| - static PassOwnPtr<IDBTransactionBackendImpl::Operation> create(PassRefPtr<IDBCursorBackendImpl> cursor, PassRefPtr<IDBKey> key, PassRefPtr<IDBCallbacks> callbacks)
|
| + static PassOwnPtr<IDBTransactionBackendImpl::Operation> create(PassRefPtr<IDBCursorBackendImpl> cursor, PassRefPtr<IDBKey> key, IDBCallbacks* callbacks)
|
| {
|
| return adoptPtr(new CursorIterationOperation(cursor, key, callbacks));
|
| }
|
| virtual void perform(IDBTransactionBackendImpl*);
|
| private:
|
| - CursorIterationOperation(PassRefPtr<IDBCursorBackendImpl> cursor, PassRefPtr<IDBKey> key, PassRefPtr<IDBCallbacks> callbacks)
|
| + CursorIterationOperation(PassRefPtr<IDBCursorBackendImpl> cursor, PassRefPtr<IDBKey> key, IDBCallbacks* callbacks)
|
| : m_cursor(cursor)
|
| , m_key(key)
|
| , m_callbacks(callbacks)
|
| @@ -55,18 +55,18 @@ private:
|
|
|
| RefPtr<IDBCursorBackendImpl> m_cursor;
|
| RefPtr<IDBKey> m_key;
|
| - RefPtr<IDBCallbacks> m_callbacks;
|
| + Persistent<IDBCallbacks> m_callbacks;
|
| };
|
|
|
| class IDBCursorBackendImpl::CursorAdvanceOperation : public IDBTransactionBackendImpl::Operation {
|
| public:
|
| - static PassOwnPtr<IDBTransactionBackendImpl::Operation> create(PassRefPtr<IDBCursorBackendImpl> cursor, unsigned long count, PassRefPtr<IDBCallbacks> callbacks)
|
| + static PassOwnPtr<IDBTransactionBackendImpl::Operation> create(PassRefPtr<IDBCursorBackendImpl> cursor, unsigned long count, IDBCallbacks* callbacks)
|
| {
|
| return adoptPtr(new CursorAdvanceOperation(cursor, count, callbacks));
|
| }
|
| virtual void perform(IDBTransactionBackendImpl*);
|
| private:
|
| - CursorAdvanceOperation(PassRefPtr<IDBCursorBackendImpl> cursor, unsigned long count, PassRefPtr<IDBCallbacks> callbacks)
|
| + CursorAdvanceOperation(PassRefPtr<IDBCursorBackendImpl> cursor, unsigned long count, IDBCallbacks* callbacks)
|
| : m_cursor(cursor)
|
| , m_count(count)
|
| , m_callbacks(callbacks)
|
| @@ -75,18 +75,18 @@ private:
|
|
|
| RefPtr<IDBCursorBackendImpl> m_cursor;
|
| unsigned long m_count;
|
| - RefPtr<IDBCallbacks> m_callbacks;
|
| + Persistent<IDBCallbacks> m_callbacks;
|
| };
|
|
|
| class IDBCursorBackendImpl::CursorPrefetchIterationOperation : public IDBTransactionBackendImpl::Operation {
|
| public:
|
| - static PassOwnPtr<IDBTransactionBackendImpl::Operation> create(PassRefPtr<IDBCursorBackendImpl> cursor, int numberToFetch, PassRefPtr<IDBCallbacks> callbacks)
|
| + static PassOwnPtr<IDBTransactionBackendImpl::Operation> create(PassRefPtr<IDBCursorBackendImpl> cursor, int numberToFetch, IDBCallbacks* callbacks)
|
| {
|
| return adoptPtr(new CursorPrefetchIterationOperation(cursor, numberToFetch, callbacks));
|
| }
|
| virtual void perform(IDBTransactionBackendImpl*);
|
| private:
|
| - CursorPrefetchIterationOperation(PassRefPtr<IDBCursorBackendImpl> cursor, int numberToFetch, PassRefPtr<IDBCallbacks> callbacks)
|
| + CursorPrefetchIterationOperation(PassRefPtr<IDBCursorBackendImpl> cursor, int numberToFetch, IDBCallbacks* callbacks)
|
| : m_cursor(cursor)
|
| , m_numberToFetch(numberToFetch)
|
| , m_callbacks(callbacks)
|
| @@ -95,7 +95,7 @@ private:
|
|
|
| RefPtr<IDBCursorBackendImpl> m_cursor;
|
| int m_numberToFetch;
|
| - RefPtr<IDBCallbacks> m_callbacks;
|
| + Persistent<IDBCallbacks> m_callbacks;
|
| };
|
|
|
| IDBCursorBackendImpl::IDBCursorBackendImpl(PassRefPtr<IDBBackingStore::Cursor> cursor, IndexedDB::CursorType cursorType, IDBDatabaseBackendInterface::TaskType taskType, IDBTransactionBackendImpl* transaction, int64_t objectStoreId)
|
| @@ -116,17 +116,15 @@ IDBCursorBackendImpl::~IDBCursorBackendImpl()
|
| }
|
|
|
|
|
| -void IDBCursorBackendImpl::continueFunction(PassRefPtr<IDBKey> key, PassRefPtr<IDBCallbacks> prpCallbacks)
|
| +void IDBCursorBackendImpl::continueFunction(PassRefPtr<IDBKey> key, IDBCallbacks* callbacks)
|
| {
|
| IDB_TRACE("IDBCursorBackendImpl::continue");
|
| - RefPtr<IDBCallbacks> callbacks = prpCallbacks;
|
| m_transaction->scheduleTask(m_taskType, CursorIterationOperation::create(this, key, callbacks));
|
| }
|
|
|
| -void IDBCursorBackendImpl::advance(unsigned long count, PassRefPtr<IDBCallbacks> prpCallbacks)
|
| +void IDBCursorBackendImpl::advance(unsigned long count, IDBCallbacks* callbacks)
|
| {
|
| IDB_TRACE("IDBCursorBackendImpl::advance");
|
| - RefPtr<IDBCallbacks> callbacks = prpCallbacks;
|
| m_transaction->scheduleTask(CursorAdvanceOperation::create(this, count, callbacks));
|
| }
|
|
|
| @@ -154,18 +152,17 @@ void IDBCursorBackendImpl::CursorIterationOperation::perform(IDBTransactionBacke
|
| m_callbacks->onSuccess(m_cursor->key(), m_cursor->primaryKey(), m_cursor->value());
|
| }
|
|
|
| -void IDBCursorBackendImpl::deleteFunction(PassRefPtr<IDBCallbacks> prpCallbacks)
|
| +void IDBCursorBackendImpl::deleteFunction(IDBCallbacks* callbacks)
|
| {
|
| IDB_TRACE("IDBCursorBackendImpl::delete");
|
| ASSERT(m_transaction->mode() != IndexedDB::TransactionReadOnly);
|
| RefPtr<IDBKeyRange> keyRange = IDBKeyRange::create(m_cursor->primaryKey());
|
| - m_database->deleteRange(m_transaction->id(), m_objectStoreId, keyRange.release(), prpCallbacks);
|
| + m_database->deleteRange(m_transaction->id(), m_objectStoreId, keyRange.release(), callbacks);
|
| }
|
|
|
| -void IDBCursorBackendImpl::prefetchContinue(int numberToFetch, PassRefPtr<IDBCallbacks> prpCallbacks)
|
| +void IDBCursorBackendImpl::prefetchContinue(int numberToFetch, IDBCallbacks* callbacks)
|
| {
|
| IDB_TRACE("IDBCursorBackendImpl::prefetchContinue");
|
| - RefPtr<IDBCallbacks> callbacks = prpCallbacks;
|
| m_transaction->scheduleTask(m_taskType, CursorPrefetchIterationOperation::create(this, numberToFetch, callbacks));
|
| }
|
|
|
|
|