Index: Source/modules/indexeddb/IDBDatabaseBackendImpl.h |
diff --git a/Source/modules/indexeddb/IDBDatabaseBackendImpl.h b/Source/modules/indexeddb/IDBDatabaseBackendImpl.h |
index 7ce800721cf1ce5db1aa1fd5cb546d3536b544ff..c731f5b869c5d94264272fea979ac4f60c18d2a2 100644 |
--- a/Source/modules/indexeddb/IDBDatabaseBackendImpl.h |
+++ b/Source/modules/indexeddb/IDBDatabaseBackendImpl.h |
@@ -43,7 +43,7 @@ class IDBTransactionCoordinator; |
class IDBDatabaseBackendImpl : public IDBDatabaseBackendInterface { |
public: |
- static PassRefPtr<IDBDatabaseBackendImpl> create(const String& name, IDBBackingStore* database, IDBFactoryBackendImpl*, const String& uniqueIdentifier); |
+ static IDBDatabaseBackendImpl* create(const String& name, IDBBackingStore* database, IDBFactoryBackendImpl*, const String& uniqueIdentifier); |
virtual ~IDBDatabaseBackendImpl(); |
PassRefPtr<IDBBackingStore> backingStore() const; |
@@ -55,15 +55,15 @@ public: |
void addIndex(int64_t objectStoreId, const IDBIndexMetadata&, int64_t newMaxIndexId); |
void removeIndex(int64_t objectStoreId, int64_t indexId); |
- void openConnection(PassRefPtr<IDBCallbacks>, PassRefPtr<IDBDatabaseCallbacks>, int64_t transactionId, int64_t version); |
+ void openConnection(PassRefPtr<IDBCallbacks>, IDBDatabaseCallbacks*, int64_t transactionId, int64_t version); |
void deleteDatabase(PassRefPtr<IDBCallbacks>); |
const IDBDatabaseMetadata& metadata() const { return m_metadata; } |
// IDBDatabaseBackendInterface |
virtual void createObjectStore(int64_t transactionId, int64_t objectStoreId, const String& name, const IDBKeyPath&, bool autoIncrement); |
virtual void deleteObjectStore(int64_t transactionId, int64_t objectStoreId); |
- virtual void createTransaction(int64_t transactionId, PassRefPtr<IDBDatabaseCallbacks>, const Vector<int64_t>& objectStoreIds, unsigned short mode); |
- virtual void close(PassRefPtr<IDBDatabaseCallbacks>); |
+ virtual void createTransaction(int64_t transactionId, IDBDatabaseCallbacks*, const Vector<int64_t>& objectStoreIds, unsigned short mode); |
+ virtual void close(IDBDatabaseCallbacks*); |
virtual void commit(int64_t transactionId); |
virtual void abort(int64_t transactionId); |
@@ -87,11 +87,13 @@ public: |
virtual void deleteRange(int64_t transactionId, int64_t objectStoreId, PassRefPtr<IDBKeyRange>, PassRefPtr<IDBCallbacks>) OVERRIDE; |
virtual void clear(int64_t transactionId, int64_t objectStoreId, PassRefPtr<IDBCallbacks>) OVERRIDE; |
+ virtual void trace(Visitor*) const; |
+ |
private: |
IDBDatabaseBackendImpl(const String& name, IDBBackingStore* database, IDBFactoryBackendImpl*, const String& uniqueIdentifier); |
bool openInternal(); |
- void runIntVersionChangeTransaction(PassRefPtr<IDBCallbacks>, PassRefPtr<IDBDatabaseCallbacks>, int64_t transactionId, int64_t requestedVersion); |
+ void runIntVersionChangeTransaction(PassRefPtr<IDBCallbacks>, IDBDatabaseCallbacks*, int64_t transactionId, int64_t requestedVersion); |
size_t connectionCount(); |
void processPendingCalls(); |
@@ -108,8 +110,7 @@ private: |
String m_identifier; |
// This might not need to be a RefPtr since the factory's lifetime is that of the page group, but it's better to be conservitive than sorry. |
- // FIXME(oilpan): Move IDBDatabaseBackendInterface to the heap and use a Member. |
- Persistent<IDBFactoryBackendImpl> m_factory; |
+ Member<IDBFactoryBackendImpl> m_factory; |
OwnPtr<IDBTransactionCoordinator> m_transactionCoordinator; |
RefPtr<IDBTransactionBackendImpl> m_runningVersionChangeTransaction; |
@@ -124,7 +125,7 @@ private: |
class PendingDeleteCall; |
Deque<OwnPtr<PendingDeleteCall> > m_pendingDeleteCalls; |
- typedef ListHashSet<RefPtr<IDBDatabaseCallbacks> > DatabaseCallbacksSet; |
+ typedef ListHashSet<Member<IDBDatabaseCallbacks> > DatabaseCallbacksSet; |
DatabaseCallbacksSet m_databaseCallbacksSet; |
bool m_closingConnection; |