| Index: Source/modules/indexeddb/IDBDatabaseBackendImpl.cpp
|
| diff --git a/Source/modules/indexeddb/IDBDatabaseBackendImpl.cpp b/Source/modules/indexeddb/IDBDatabaseBackendImpl.cpp
|
| index 57d9567d07c228c1dd51520e507518e883ef37ce..0aa8018f81fcbc94aceec0443755591be9224264 100644
|
| --- a/Source/modules/indexeddb/IDBDatabaseBackendImpl.cpp
|
| +++ b/Source/modules/indexeddb/IDBDatabaseBackendImpl.cpp
|
| @@ -41,6 +41,8 @@
|
|
|
| namespace WebCore {
|
|
|
| +DEFINE_GC_INFO(IDBDatabaseBackendInterface);
|
| +
|
| class CreateObjectStoreOperation : public IDBTransactionBackendImpl::Operation {
|
| public:
|
| static PassOwnPtr<IDBTransactionBackendImpl::Operation> create(PassRefPtr<IDBBackingStore> backingStore, const IDBObjectStoreMetadata& objectStoreMetadata)
|
| @@ -79,13 +81,13 @@ private:
|
|
|
| class IDBDatabaseBackendImpl::VersionChangeOperation : public IDBTransactionBackendImpl::Operation {
|
| public:
|
| - static PassOwnPtr<IDBTransactionBackendImpl::Operation> create(PassRefPtr<IDBDatabaseBackendImpl> database, int64_t transactionId, int64_t version, PassRefPtr<IDBCallbacks> callbacks, PassRefPtr<IDBDatabaseCallbacks> databaseCallbacks)
|
| + static PassOwnPtr<IDBTransactionBackendImpl::Operation> create(IDBDatabaseBackendImpl* database, int64_t transactionId, int64_t version, IDBCallbacks* callbacks, IDBDatabaseCallbacks* databaseCallbacks)
|
| {
|
| return adoptPtr(new VersionChangeOperation(database, transactionId, version, callbacks, databaseCallbacks));
|
| }
|
| virtual void perform(IDBTransactionBackendImpl*);
|
| private:
|
| - VersionChangeOperation(PassRefPtr<IDBDatabaseBackendImpl> database, int64_t transactionId, int64_t version, PassRefPtr<IDBCallbacks> callbacks, PassRefPtr<IDBDatabaseCallbacks> databaseCallbacks)
|
| + VersionChangeOperation(IDBDatabaseBackendImpl* database, int64_t transactionId, int64_t version, IDBCallbacks* callbacks, IDBDatabaseCallbacks* databaseCallbacks)
|
| : m_database(database)
|
| , m_transactionId(transactionId)
|
| , m_version(version)
|
| @@ -94,65 +96,65 @@ private:
|
| {
|
| }
|
|
|
| - RefPtr<IDBDatabaseBackendImpl> m_database;
|
| + Persistent<IDBDatabaseBackendImpl> m_database;
|
| int64_t m_transactionId;
|
| int64_t m_version;
|
| - RefPtr<IDBCallbacks> m_callbacks;
|
| - RefPtr<IDBDatabaseCallbacks> m_databaseCallbacks;
|
| + Persistent<IDBCallbacks> m_callbacks;
|
| + Persistent<IDBDatabaseCallbacks> m_databaseCallbacks;
|
| };
|
|
|
| class CreateObjectStoreAbortOperation : public IDBTransactionBackendImpl::Operation {
|
| public:
|
| - static PassOwnPtr<IDBTransactionBackendImpl::Operation> create(PassRefPtr<IDBDatabaseBackendImpl> database, int64_t objectStoreId)
|
| + static PassOwnPtr<IDBTransactionBackendImpl::Operation> create(IDBDatabaseBackendImpl* database, int64_t objectStoreId)
|
| {
|
| return adoptPtr(new CreateObjectStoreAbortOperation(database, objectStoreId));
|
| }
|
| virtual void perform(IDBTransactionBackendImpl*);
|
| private:
|
| - CreateObjectStoreAbortOperation(PassRefPtr<IDBDatabaseBackendImpl> database, int64_t objectStoreId)
|
| + CreateObjectStoreAbortOperation(IDBDatabaseBackendImpl* database, int64_t objectStoreId)
|
| : m_database(database)
|
| , m_objectStoreId(objectStoreId)
|
| {
|
| }
|
|
|
| - const RefPtr<IDBDatabaseBackendImpl> m_database;
|
| + const Persistent<IDBDatabaseBackendImpl> m_database;
|
| const int64_t m_objectStoreId;
|
| };
|
|
|
| class DeleteObjectStoreAbortOperation : public IDBTransactionBackendImpl::Operation {
|
| public:
|
| - static PassOwnPtr<IDBTransactionBackendImpl::Operation> create(PassRefPtr<IDBDatabaseBackendImpl> database, const IDBObjectStoreMetadata& objectStore)
|
| + static PassOwnPtr<IDBTransactionBackendImpl::Operation> create(IDBDatabaseBackendImpl* database, const IDBObjectStoreMetadata& objectStore)
|
| {
|
| return adoptPtr(new DeleteObjectStoreAbortOperation(database, objectStore));
|
| }
|
| virtual void perform(IDBTransactionBackendImpl*);
|
| private:
|
| - DeleteObjectStoreAbortOperation(PassRefPtr<IDBDatabaseBackendImpl> database, const IDBObjectStoreMetadata& objectStoreMetadata)
|
| + DeleteObjectStoreAbortOperation(IDBDatabaseBackendImpl* database, const IDBObjectStoreMetadata& objectStoreMetadata)
|
| : m_database(database)
|
| , m_objectStoreMetadata(objectStoreMetadata)
|
| {
|
| }
|
|
|
| - RefPtr<IDBDatabaseBackendImpl> m_database;
|
| + Persistent<IDBDatabaseBackendImpl> m_database;
|
| IDBObjectStoreMetadata m_objectStoreMetadata;
|
| };
|
|
|
| class IDBDatabaseBackendImpl::VersionChangeAbortOperation : public IDBTransactionBackendImpl::Operation {
|
| public:
|
| - static PassOwnPtr<IDBTransactionBackendImpl::Operation> create(PassRefPtr<IDBDatabaseBackendImpl> database, const String& previousVersion, int64_t previousIntVersion)
|
| + static PassOwnPtr<IDBTransactionBackendImpl::Operation> create(IDBDatabaseBackendImpl* database, const String& previousVersion, int64_t previousIntVersion)
|
| {
|
| return adoptPtr(new VersionChangeAbortOperation(database, previousVersion, previousIntVersion));
|
| }
|
| virtual void perform(IDBTransactionBackendImpl*);
|
| private:
|
| - VersionChangeAbortOperation(PassRefPtr<IDBDatabaseBackendImpl> database, const String& previousVersion, int64_t previousIntVersion)
|
| + VersionChangeAbortOperation(IDBDatabaseBackendImpl* database, const String& previousVersion, int64_t previousIntVersion)
|
| : m_database(database)
|
| , m_previousVersion(previousVersion)
|
| , m_previousIntVersion(previousIntVersion)
|
| {
|
| }
|
|
|
| - RefPtr<IDBDatabaseBackendImpl> m_database;
|
| + Persistent<IDBDatabaseBackendImpl> m_database;
|
| String m_previousVersion;
|
| int64_t m_previousIntVersion;
|
| };
|
| @@ -199,53 +201,53 @@ private:
|
|
|
| class CreateIndexAbortOperation : public IDBTransactionBackendImpl::Operation {
|
| public:
|
| - static PassOwnPtr<IDBTransactionBackendImpl::Operation> create(PassRefPtr<IDBDatabaseBackendImpl> database, int64_t objectStoreId, int64_t indexId)
|
| + static PassOwnPtr<IDBTransactionBackendImpl::Operation> create(IDBDatabaseBackendImpl* database, int64_t objectStoreId, int64_t indexId)
|
| {
|
| return adoptPtr(new CreateIndexAbortOperation(database, objectStoreId, indexId));
|
| }
|
| virtual void perform(IDBTransactionBackendImpl*);
|
| private:
|
| - CreateIndexAbortOperation(PassRefPtr<IDBDatabaseBackendImpl> database, int64_t objectStoreId, int64_t indexId)
|
| + CreateIndexAbortOperation(IDBDatabaseBackendImpl* database, int64_t objectStoreId, int64_t indexId)
|
| : m_database(database)
|
| , m_objectStoreId(objectStoreId)
|
| , m_indexId(indexId)
|
| {
|
| }
|
|
|
| - const RefPtr<IDBDatabaseBackendImpl> m_database;
|
| + const Persistent<IDBDatabaseBackendImpl> m_database;
|
| const int64_t m_objectStoreId;
|
| const int64_t m_indexId;
|
| };
|
|
|
| class DeleteIndexAbortOperation : public IDBTransactionBackendImpl::Operation {
|
| public:
|
| - static PassOwnPtr<IDBTransactionBackendImpl::Operation> create(PassRefPtr<IDBDatabaseBackendImpl> database, int64_t objectStoreId, const IDBIndexMetadata& indexMetadata)
|
| + static PassOwnPtr<IDBTransactionBackendImpl::Operation> create(IDBDatabaseBackendImpl* database, int64_t objectStoreId, const IDBIndexMetadata& indexMetadata)
|
| {
|
| return adoptPtr(new DeleteIndexAbortOperation(database, objectStoreId, indexMetadata));
|
| }
|
| virtual void perform(IDBTransactionBackendImpl*);
|
| private:
|
| - DeleteIndexAbortOperation(PassRefPtr<IDBDatabaseBackendImpl> database, int64_t objectStoreId, const IDBIndexMetadata& indexMetadata)
|
| + DeleteIndexAbortOperation(IDBDatabaseBackendImpl* database, int64_t objectStoreId, const IDBIndexMetadata& indexMetadata)
|
| : m_database(database)
|
| , m_objectStoreId(objectStoreId)
|
| , m_indexMetadata(indexMetadata)
|
| {
|
| }
|
|
|
| - const RefPtr<IDBDatabaseBackendImpl> m_database;
|
| + const Persistent<IDBDatabaseBackendImpl> m_database;
|
| const int64_t m_objectStoreId;
|
| const IDBIndexMetadata m_indexMetadata;
|
| };
|
|
|
| class GetOperation : public IDBTransactionBackendImpl::Operation {
|
| public:
|
| - static PassOwnPtr<IDBTransactionBackendImpl::Operation> create(PassRefPtr<IDBBackingStore> backingStore, const IDBDatabaseMetadata& metadata, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange> keyRange, IndexedDB::CursorType cursorType, PassRefPtr<IDBCallbacks> callbacks)
|
| + static PassOwnPtr<IDBTransactionBackendImpl::Operation> create(PassRefPtr<IDBBackingStore> backingStore, const IDBDatabaseMetadata& metadata, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange> keyRange, IndexedDB::CursorType cursorType, IDBCallbacks* callbacks)
|
| {
|
| return adoptPtr(new GetOperation(backingStore, metadata, objectStoreId, indexId, keyRange, cursorType, callbacks));
|
| }
|
| virtual void perform(IDBTransactionBackendImpl*);
|
| private:
|
| - GetOperation(PassRefPtr<IDBBackingStore> backingStore, const IDBDatabaseMetadata& metadata, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange> keyRange, IndexedDB::CursorType cursorType, PassRefPtr<IDBCallbacks> callbacks)
|
| + GetOperation(PassRefPtr<IDBBackingStore> backingStore, const IDBDatabaseMetadata& metadata, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange> keyRange, IndexedDB::CursorType cursorType, IDBCallbacks* callbacks)
|
| : m_backingStore(backingStore)
|
| , m_databaseId(metadata.id)
|
| , m_objectStoreId(objectStoreId)
|
| @@ -268,18 +270,18 @@ private:
|
| const bool m_autoIncrement;
|
| const RefPtr<IDBKeyRange> m_keyRange;
|
| const IndexedDB::CursorType m_cursorType;
|
| - const RefPtr<IDBCallbacks> m_callbacks;
|
| + const Persistent<IDBCallbacks> m_callbacks;
|
| };
|
|
|
| class PutOperation : public IDBTransactionBackendImpl::Operation {
|
| public:
|
| - static PassOwnPtr<IDBTransactionBackendImpl::Operation> create(PassRefPtr<IDBBackingStore> backingStore, int64_t databaseId, const IDBObjectStoreMetadata& objectStore, PassRefPtr<SharedBuffer> value, PassRefPtr<IDBKey> key, IDBDatabaseBackendInterface::PutMode putMode, PassRefPtr<IDBCallbacks> callbacks, const Vector<int64_t>& indexIds, const Vector<IDBDatabaseBackendInterface::IndexKeys>& indexKeys)
|
| + static PassOwnPtr<IDBTransactionBackendImpl::Operation> create(PassRefPtr<IDBBackingStore> backingStore, int64_t databaseId, const IDBObjectStoreMetadata& objectStore, PassRefPtr<SharedBuffer> value, PassRefPtr<IDBKey> key, IDBDatabaseBackendInterface::PutMode putMode, IDBCallbacks* callbacks, const Vector<int64_t>& indexIds, const Vector<IDBDatabaseBackendInterface::IndexKeys>& indexKeys)
|
| {
|
| return adoptPtr(new PutOperation(backingStore, databaseId, objectStore, value, key, putMode, callbacks, indexIds, indexKeys));
|
| }
|
| virtual void perform(IDBTransactionBackendImpl*);
|
| private:
|
| - PutOperation(PassRefPtr<IDBBackingStore> backingStore, int64_t databaseId, const IDBObjectStoreMetadata& objectStore, PassRefPtr<SharedBuffer>& value, PassRefPtr<IDBKey> key, IDBDatabaseBackendInterface::PutMode putMode, PassRefPtr<IDBCallbacks> callbacks, const Vector<int64_t>& indexIds, const Vector<IDBDatabaseBackendInterface::IndexKeys>& indexKeys)
|
| + PutOperation(PassRefPtr<IDBBackingStore> backingStore, int64_t databaseId, const IDBObjectStoreMetadata& objectStore, PassRefPtr<SharedBuffer>& value, PassRefPtr<IDBKey> key, IDBDatabaseBackendInterface::PutMode putMode, IDBCallbacks* callbacks, const Vector<int64_t>& indexIds, const Vector<IDBDatabaseBackendInterface::IndexKeys>& indexKeys)
|
| : m_backingStore(backingStore)
|
| , m_databaseId(databaseId)
|
| , m_objectStore(objectStore)
|
| @@ -298,7 +300,7 @@ private:
|
| const RefPtr<SharedBuffer> m_value;
|
| const RefPtr<IDBKey> m_key;
|
| const IDBDatabaseBackendInterface::PutMode m_putMode;
|
| - const RefPtr<IDBCallbacks> m_callbacks;
|
| + const Persistent<IDBCallbacks> m_callbacks;
|
| const Vector<int64_t> m_indexIds;
|
| const Vector<IDBDatabaseBackendInterface::IndexKeys> m_indexKeys;
|
| };
|
| @@ -321,13 +323,13 @@ private:
|
|
|
| class OpenCursorOperation : public IDBTransactionBackendImpl::Operation {
|
| public:
|
| - static PassOwnPtr<IDBTransactionBackendImpl::Operation> create(PassRefPtr<IDBBackingStore> backingStore, int64_t databaseId, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange> keyRange, IndexedDB::CursorDirection direction, IndexedDB::CursorType cursorType, IDBDatabaseBackendInterface::TaskType taskType, PassRefPtr<IDBCallbacks> callbacks)
|
| + static PassOwnPtr<IDBTransactionBackendImpl::Operation> create(PassRefPtr<IDBBackingStore> backingStore, int64_t databaseId, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange> keyRange, IndexedDB::CursorDirection direction, IndexedDB::CursorType cursorType, IDBDatabaseBackendInterface::TaskType taskType, IDBCallbacks* callbacks)
|
| {
|
| return adoptPtr(new OpenCursorOperation(backingStore, databaseId, objectStoreId, indexId, keyRange, direction, cursorType, taskType, callbacks));
|
| }
|
| virtual void perform(IDBTransactionBackendImpl*);
|
| private:
|
| - OpenCursorOperation(PassRefPtr<IDBBackingStore> backingStore, int64_t databaseId, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange> keyRange, IndexedDB::CursorDirection direction, IndexedDB::CursorType cursorType, IDBDatabaseBackendInterface::TaskType taskType, PassRefPtr<IDBCallbacks> callbacks)
|
| + OpenCursorOperation(PassRefPtr<IDBBackingStore> backingStore, int64_t databaseId, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange> keyRange, IndexedDB::CursorDirection direction, IndexedDB::CursorType cursorType, IDBDatabaseBackendInterface::TaskType taskType, IDBCallbacks* callbacks)
|
| : m_backingStore(backingStore)
|
| , m_databaseId(databaseId)
|
| , m_objectStoreId(objectStoreId)
|
| @@ -348,18 +350,18 @@ private:
|
| const IndexedDB::CursorDirection m_direction;
|
| const IndexedDB::CursorType m_cursorType;
|
| const IDBDatabaseBackendInterface::TaskType m_taskType;
|
| - const RefPtr<IDBCallbacks> m_callbacks;
|
| + const Persistent<IDBCallbacks> m_callbacks;
|
| };
|
|
|
| class CountOperation : public IDBTransactionBackendImpl::Operation {
|
| public:
|
| - static PassOwnPtr<IDBTransactionBackendImpl::Operation> create(PassRefPtr<IDBBackingStore> backingStore, int64_t databaseId, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange> keyRange, PassRefPtr<IDBCallbacks> callbacks)
|
| + static PassOwnPtr<IDBTransactionBackendImpl::Operation> create(PassRefPtr<IDBBackingStore> backingStore, int64_t databaseId, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange> keyRange, IDBCallbacks* callbacks)
|
| {
|
| return adoptPtr(new CountOperation(backingStore, databaseId, objectStoreId, indexId, keyRange, callbacks));
|
| }
|
| virtual void perform(IDBTransactionBackendImpl*);
|
| private:
|
| - CountOperation(PassRefPtr<IDBBackingStore> backingStore, int64_t databaseId, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange> keyRange, PassRefPtr<IDBCallbacks> callbacks)
|
| + CountOperation(PassRefPtr<IDBBackingStore> backingStore, int64_t databaseId, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange> keyRange, IDBCallbacks* callbacks)
|
| : m_backingStore(backingStore)
|
| , m_databaseId(databaseId)
|
| , m_objectStoreId(objectStoreId)
|
| @@ -374,18 +376,18 @@ private:
|
| const int64_t m_objectStoreId;
|
| const int64_t m_indexId;
|
| const RefPtr<IDBKeyRange> m_keyRange;
|
| - const RefPtr<IDBCallbacks> m_callbacks;
|
| + const Persistent<IDBCallbacks> m_callbacks;
|
| };
|
|
|
| class DeleteRangeOperation : public IDBTransactionBackendImpl::Operation {
|
| public:
|
| - static PassOwnPtr<IDBTransactionBackendImpl::Operation> create(PassRefPtr<IDBBackingStore> backingStore, int64_t databaseId, int64_t objectStoreId, PassRefPtr<IDBKeyRange> keyRange, PassRefPtr<IDBCallbacks> callbacks)
|
| + static PassOwnPtr<IDBTransactionBackendImpl::Operation> create(PassRefPtr<IDBBackingStore> backingStore, int64_t databaseId, int64_t objectStoreId, PassRefPtr<IDBKeyRange> keyRange, IDBCallbacks* callbacks)
|
| {
|
| return adoptPtr(new DeleteRangeOperation(backingStore, databaseId, objectStoreId, keyRange, callbacks));
|
| }
|
| virtual void perform(IDBTransactionBackendImpl*);
|
| private:
|
| - DeleteRangeOperation(PassRefPtr<IDBBackingStore> backingStore, int64_t databaseId, int64_t objectStoreId, PassRefPtr<IDBKeyRange> keyRange, PassRefPtr<IDBCallbacks> callbacks)
|
| + DeleteRangeOperation(PassRefPtr<IDBBackingStore> backingStore, int64_t databaseId, int64_t objectStoreId, PassRefPtr<IDBKeyRange> keyRange, IDBCallbacks* callbacks)
|
| : m_backingStore(backingStore)
|
| , m_databaseId(databaseId)
|
| , m_objectStoreId(objectStoreId)
|
| @@ -398,18 +400,18 @@ private:
|
| const int64_t m_databaseId;
|
| const int64_t m_objectStoreId;
|
| const RefPtr<IDBKeyRange> m_keyRange;
|
| - const RefPtr<IDBCallbacks> m_callbacks;
|
| + const Persistent<IDBCallbacks> m_callbacks;
|
| };
|
|
|
| class ClearOperation : public IDBTransactionBackendImpl::Operation {
|
| public:
|
| - static PassOwnPtr<IDBTransactionBackendImpl::Operation> create(PassRefPtr<IDBBackingStore> backingStore, int64_t databaseId, int64_t objectStoreId, PassRefPtr<IDBCallbacks> callbacks)
|
| + static PassOwnPtr<IDBTransactionBackendImpl::Operation> create(PassRefPtr<IDBBackingStore> backingStore, int64_t databaseId, int64_t objectStoreId, IDBCallbacks* callbacks)
|
| {
|
| return adoptPtr(new ClearOperation(backingStore, databaseId, objectStoreId, callbacks));
|
| }
|
| virtual void perform(IDBTransactionBackendImpl*);
|
| private:
|
| - ClearOperation(PassRefPtr<IDBBackingStore> backingStore, int64_t databaseId, int64_t objectStoreId, PassRefPtr<IDBCallbacks> callbacks)
|
| + ClearOperation(PassRefPtr<IDBBackingStore> backingStore, int64_t databaseId, int64_t objectStoreId, IDBCallbacks* callbacks)
|
| : m_backingStore(backingStore)
|
| , m_databaseId(databaseId)
|
| , m_objectStoreId(objectStoreId)
|
| @@ -420,56 +422,56 @@ private:
|
| const RefPtr<IDBBackingStore> m_backingStore;
|
| const int64_t m_databaseId;
|
| const int64_t m_objectStoreId;
|
| - const RefPtr<IDBCallbacks> m_callbacks;
|
| + const Persistent<IDBCallbacks> m_callbacks;
|
| };
|
|
|
| class IDBDatabaseBackendImpl::PendingOpenCall {
|
| public:
|
| - static PassOwnPtr<PendingOpenCall> create(PassRefPtr<IDBCallbacks> callbacks, PassRefPtr<IDBDatabaseCallbacks> databaseCallbacks, int64_t transactionId, int64_t version)
|
| + static PassOwnPtr<PendingOpenCall> create(IDBCallbacks* callbacks, IDBDatabaseCallbacks* databaseCallbacks, int64_t transactionId, int64_t version)
|
| {
|
| return adoptPtr(new PendingOpenCall(callbacks, databaseCallbacks, transactionId, version));
|
| }
|
| - PassRefPtr<IDBCallbacks> callbacks() { return m_callbacks; }
|
| - PassRefPtr<IDBDatabaseCallbacks> databaseCallbacks() { return m_databaseCallbacks; }
|
| + IDBCallbacks* callbacks() { return m_callbacks; }
|
| + IDBDatabaseCallbacks* databaseCallbacks() { return m_databaseCallbacks; }
|
| int64_t version() { return m_version; }
|
| int64_t transactionId() const { return m_transactionId; }
|
|
|
| private:
|
| - PendingOpenCall(PassRefPtr<IDBCallbacks> callbacks, PassRefPtr<IDBDatabaseCallbacks> databaseCallbacks, int64_t transactionId, int64_t version)
|
| + PendingOpenCall(IDBCallbacks* callbacks, IDBDatabaseCallbacks* databaseCallbacks, int64_t transactionId, int64_t version)
|
| : m_callbacks(callbacks)
|
| , m_databaseCallbacks(databaseCallbacks)
|
| , m_version(version)
|
| , m_transactionId(transactionId)
|
| {
|
| }
|
| - RefPtr<IDBCallbacks> m_callbacks;
|
| - RefPtr<IDBDatabaseCallbacks> m_databaseCallbacks;
|
| + Persistent<IDBCallbacks> m_callbacks;
|
| + Persistent<IDBDatabaseCallbacks> m_databaseCallbacks;
|
| int64_t m_version;
|
| const int64_t m_transactionId;
|
| };
|
|
|
| class IDBDatabaseBackendImpl::PendingDeleteCall {
|
| public:
|
| - static PassOwnPtr<PendingDeleteCall> create(PassRefPtr<IDBCallbacks> callbacks)
|
| + static PassOwnPtr<PendingDeleteCall> create(IDBCallbacks* callbacks)
|
| {
|
| return adoptPtr(new PendingDeleteCall(callbacks));
|
| }
|
| - PassRefPtr<IDBCallbacks> callbacks() { return m_callbacks; }
|
| + IDBCallbacks* callbacks() { return m_callbacks; }
|
|
|
| private:
|
| - PendingDeleteCall(PassRefPtr<IDBCallbacks> callbacks)
|
| + PendingDeleteCall(IDBCallbacks* callbacks)
|
| : m_callbacks(callbacks)
|
| {
|
| }
|
| - RefPtr<IDBCallbacks> m_callbacks;
|
| + Persistent<IDBCallbacks> m_callbacks;
|
| };
|
|
|
| -PassRefPtr<IDBDatabaseBackendImpl> IDBDatabaseBackendImpl::create(const String& name, IDBBackingStore* database, IDBFactoryBackendImpl* factory, const String& uniqueIdentifier)
|
| +IDBDatabaseBackendImpl* IDBDatabaseBackendImpl::create(const String& name, IDBBackingStore* database, IDBFactoryBackendImpl* factory, const String& uniqueIdentifier)
|
| {
|
| - RefPtr<IDBDatabaseBackendImpl> backend = adoptRef(new IDBDatabaseBackendImpl(name, database, factory, uniqueIdentifier));
|
| + IDBDatabaseBackendImpl* backend = new IDBDatabaseBackendImpl(name, database, factory, uniqueIdentifier);
|
| if (!backend->openInternal())
|
| return 0;
|
| - return backend.release();
|
| + return backend;
|
| }
|
|
|
| namespace {
|
| @@ -682,7 +684,7 @@ void IDBDatabaseBackendImpl::abort(int64_t transactionId, PassRefPtr<IDBDatabase
|
| m_transactions.get(transactionId)->abort(error);
|
| }
|
|
|
| -void IDBDatabaseBackendImpl::get(int64_t transactionId, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange> keyRange, bool keyOnly, PassRefPtr<IDBCallbacks> callbacks)
|
| +void IDBDatabaseBackendImpl::get(int64_t transactionId, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange> keyRange, bool keyOnly, IDBCallbacks* callbacks)
|
| {
|
| IDB_TRACE("IDBDatabaseBackendImpl::get");
|
| IDBTransactionBackendImpl* transaction = m_transactions.get(transactionId);
|
| @@ -784,7 +786,7 @@ void GetOperation::perform(IDBTransactionBackendImpl* transaction)
|
| m_callbacks->onSuccess(SharedBuffer::adoptVector(value));
|
| }
|
|
|
| -void IDBDatabaseBackendImpl::put(int64_t transactionId, int64_t objectStoreId, PassRefPtr<SharedBuffer> value, PassRefPtr<IDBKey> key, PutMode putMode, PassRefPtr<IDBCallbacks> callbacks, const Vector<int64_t>& indexIds, const Vector<IndexKeys>& indexKeys)
|
| +void IDBDatabaseBackendImpl::put(int64_t transactionId, int64_t objectStoreId, PassRefPtr<SharedBuffer> value, PassRefPtr<IDBKey> key, PutMode putMode, IDBCallbacks* callbacks, const Vector<int64_t>& indexIds, const Vector<IndexKeys>& indexKeys)
|
| {
|
| IDB_TRACE("IDBDatabaseBackendImpl::put");
|
| IDBTransactionBackendImpl* transaction = m_transactions.get(transactionId);
|
| @@ -933,7 +935,7 @@ void SetIndexesReadyOperation::perform(IDBTransactionBackendImpl* transaction)
|
| transaction->didCompletePreemptiveEvent();
|
| }
|
|
|
| -void IDBDatabaseBackendImpl::openCursor(int64_t transactionId, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange> keyRange, IndexedDB::CursorDirection direction, bool keyOnly, TaskType taskType, PassRefPtr<IDBCallbacks> callbacks)
|
| +void IDBDatabaseBackendImpl::openCursor(int64_t transactionId, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange> keyRange, IndexedDB::CursorDirection direction, bool keyOnly, TaskType taskType, IDBCallbacks* callbacks)
|
| {
|
| IDB_TRACE("IDBDatabaseBackendImpl::openCursor");
|
| IDBTransactionBackendImpl* transaction = m_transactions.get(transactionId);
|
| @@ -976,7 +978,7 @@ void OpenCursorOperation::perform(IDBTransactionBackendImpl* transaction)
|
| m_callbacks->onSuccess(cursor, cursor->key(), cursor->primaryKey(), cursor->value());
|
| }
|
|
|
| -void IDBDatabaseBackendImpl::count(int64_t transactionId, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange> keyRange, PassRefPtr<IDBCallbacks> callbacks)
|
| +void IDBDatabaseBackendImpl::count(int64_t transactionId, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange> keyRange, IDBCallbacks* callbacks)
|
| {
|
| IDB_TRACE("IDBDatabaseBackendImpl::count");
|
| IDBTransactionBackendImpl* transaction = m_transactions.get(transactionId);
|
| @@ -1009,7 +1011,7 @@ void CountOperation::perform(IDBTransactionBackendImpl* transaction)
|
| m_callbacks->onSuccess(count);
|
| }
|
|
|
| -void IDBDatabaseBackendImpl::deleteRange(int64_t transactionId, int64_t objectStoreId, PassRefPtr<IDBKeyRange> keyRange, PassRefPtr<IDBCallbacks> callbacks)
|
| +void IDBDatabaseBackendImpl::deleteRange(int64_t transactionId, int64_t objectStoreId, PassRefPtr<IDBKeyRange> keyRange, IDBCallbacks* callbacks)
|
| {
|
| IDB_TRACE("IDBDatabaseBackendImpl::deleteRange");
|
| IDBTransactionBackendImpl* transaction = m_transactions.get(transactionId);
|
| @@ -1036,7 +1038,7 @@ void DeleteRangeOperation::perform(IDBTransactionBackendImpl* transaction)
|
| m_callbacks->onSuccess();
|
| }
|
|
|
| -void IDBDatabaseBackendImpl::clear(int64_t transactionId, int64_t objectStoreId, PassRefPtr<IDBCallbacks> callbacks)
|
| +void IDBDatabaseBackendImpl::clear(int64_t transactionId, int64_t objectStoreId, IDBCallbacks* callbacks)
|
| {
|
| IDB_TRACE("IDBDatabaseBackendImpl::clear");
|
| IDBTransactionBackendImpl* transaction = m_transactions.get(transactionId);
|
| @@ -1172,18 +1174,16 @@ void IDBDatabaseBackendImpl::processPendingCalls()
|
| }
|
| }
|
|
|
| -void IDBDatabaseBackendImpl::createTransaction(int64_t transactionId, PassRefPtr<IDBDatabaseCallbacks> callbacks, const Vector<int64_t>& objectStoreIds, unsigned short mode)
|
| +void IDBDatabaseBackendImpl::createTransaction(int64_t transactionId, IDBDatabaseCallbacks* callbacks, const Vector<int64_t>& objectStoreIds, unsigned short mode)
|
| {
|
| RefPtr<IDBTransactionBackendImpl> transaction = IDBTransactionBackendImpl::create(transactionId, callbacks, objectStoreIds, static_cast<IndexedDB::TransactionMode>(mode), this);
|
| ASSERT(!m_transactions.contains(transactionId));
|
| m_transactions.add(transactionId, transaction.get());
|
| }
|
|
|
| -void IDBDatabaseBackendImpl::openConnection(PassRefPtr<IDBCallbacks> prpCallbacks, PassRefPtr<IDBDatabaseCallbacks> prpDatabaseCallbacks, int64_t transactionId, int64_t version)
|
| +void IDBDatabaseBackendImpl::openConnection(IDBCallbacks* callbacks, IDBDatabaseCallbacks* databaseCallbacks, int64_t transactionId, int64_t version)
|
| {
|
| ASSERT(m_backingStore.get());
|
| - RefPtr<IDBCallbacks> callbacks = prpCallbacks;
|
| - RefPtr<IDBDatabaseCallbacks> databaseCallbacks = prpDatabaseCallbacks;
|
|
|
| if (!m_pendingDeleteCalls.isEmpty() || m_runningVersionChangeTransaction) {
|
| m_pendingOpenCalls.append(PendingOpenCall::create(callbacks, databaseCallbacks, transactionId, version));
|
| @@ -1220,7 +1220,7 @@ void IDBDatabaseBackendImpl::openConnection(PassRefPtr<IDBCallbacks> prpCallback
|
|
|
| if (version == IDBDatabaseMetadata::NoIntVersion) {
|
| if (!isNewDatabase) {
|
| - m_databaseCallbacksSet.add(RefPtr<IDBDatabaseCallbacks>(databaseCallbacks));
|
| + m_databaseCallbacksSet.add(databaseCallbacks);
|
| callbacks->onSuccess(this, this->metadata());
|
| return;
|
| }
|
| @@ -1241,10 +1241,8 @@ void IDBDatabaseBackendImpl::openConnection(PassRefPtr<IDBCallbacks> prpCallback
|
| callbacks->onSuccess(this, this->metadata());
|
| }
|
|
|
| -void IDBDatabaseBackendImpl::runIntVersionChangeTransaction(PassRefPtr<IDBCallbacks> prpCallbacks, PassRefPtr<IDBDatabaseCallbacks> prpDatabaseCallbacks, int64_t transactionId, int64_t requestedVersion)
|
| +void IDBDatabaseBackendImpl::runIntVersionChangeTransaction(IDBCallbacks* callbacks, IDBDatabaseCallbacks* databaseCallbacks, int64_t transactionId, int64_t requestedVersion)
|
| {
|
| - RefPtr<IDBCallbacks> callbacks = prpCallbacks;
|
| - RefPtr<IDBDatabaseCallbacks> databaseCallbacks = prpDatabaseCallbacks;
|
| ASSERT(callbacks);
|
| for (DatabaseCallbacksSet::const_iterator it = m_databaseCallbacksSet.begin(); it != m_databaseCallbacksSet.end(); ++it) {
|
| // Front end ensures the event is not fired at connections that have closePending set.
|
| @@ -1276,9 +1274,8 @@ void IDBDatabaseBackendImpl::runIntVersionChangeTransaction(PassRefPtr<IDBCallba
|
| m_databaseCallbacksSet.add(databaseCallbacks);
|
| }
|
|
|
| -void IDBDatabaseBackendImpl::deleteDatabase(PassRefPtr<IDBCallbacks> prpCallbacks)
|
| +void IDBDatabaseBackendImpl::deleteDatabase(IDBCallbacks* callbacks)
|
| {
|
| - RefPtr<IDBCallbacks> callbacks = prpCallbacks;
|
| if (isDeleteDatabaseBlocked()) {
|
| for (DatabaseCallbacksSet::const_iterator it = m_databaseCallbacksSet.begin(); it != m_databaseCallbacksSet.end(); ++it) {
|
| // Front end ensures the event is not fired at connections that have closePending set.
|
| @@ -1288,10 +1285,10 @@ void IDBDatabaseBackendImpl::deleteDatabase(PassRefPtr<IDBCallbacks> prpCallback
|
| // VersionChangeEvents are received, not just set up to fire.
|
| // https://bugs.webkit.org/show_bug.cgi?id=71130
|
| callbacks->onBlocked(m_metadata.intVersion);
|
| - m_pendingDeleteCalls.append(PendingDeleteCall::create(callbacks.release()));
|
| + m_pendingDeleteCalls.append(PendingDeleteCall::create(callbacks));
|
| return;
|
| }
|
| - deleteDatabaseFinal(callbacks.release());
|
| + deleteDatabaseFinal(callbacks);
|
| }
|
|
|
| bool IDBDatabaseBackendImpl::isDeleteDatabaseBlocked()
|
| @@ -1299,7 +1296,7 @@ bool IDBDatabaseBackendImpl::isDeleteDatabaseBlocked()
|
| return connectionCount();
|
| }
|
|
|
| -void IDBDatabaseBackendImpl::deleteDatabaseFinal(PassRefPtr<IDBCallbacks> callbacks)
|
| +void IDBDatabaseBackendImpl::deleteDatabaseFinal(IDBCallbacks* callbacks)
|
| {
|
| ASSERT(!isDeleteDatabaseBlocked());
|
| ASSERT(m_backingStore);
|
| @@ -1314,9 +1311,8 @@ void IDBDatabaseBackendImpl::deleteDatabaseFinal(PassRefPtr<IDBCallbacks> callba
|
| callbacks->onSuccess();
|
| }
|
|
|
| -void IDBDatabaseBackendImpl::close(PassRefPtr<IDBDatabaseCallbacks> prpCallbacks)
|
| +void IDBDatabaseBackendImpl::close(IDBDatabaseCallbacks* callbacks)
|
| {
|
| - RefPtr<IDBDatabaseCallbacks> callbacks = prpCallbacks;
|
| ASSERT(m_databaseCallbacksSet.contains(callbacks));
|
|
|
| // Close outstanding transactions from the closing connection. This can not happen
|
| @@ -1385,4 +1381,10 @@ void IDBDatabaseBackendImpl::VersionChangeAbortOperation::perform(IDBTransaction
|
| m_database->m_metadata.intVersion = m_previousIntVersion;
|
| }
|
|
|
| +void IDBDatabaseBackendImpl::trace(Visitor* visitor)
|
| +{
|
| + visitor->trace(m_factory);
|
| + visitor->trace(m_databaseCallbacksSet);
|
| +}
|
| +
|
| } // namespace WebCore
|
|
|