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 |