| Index: Source/modules/indexeddb/IDBOpenDBRequest.cpp
|
| diff --git a/Source/modules/indexeddb/IDBOpenDBRequest.cpp b/Source/modules/indexeddb/IDBOpenDBRequest.cpp
|
| index 4756e3bc0cc6b82cb742a2853ea249abffd29efe..93b1bd5f79871222ca1dcdfb454a6307db9bf6a5 100644
|
| --- a/Source/modules/indexeddb/IDBOpenDBRequest.cpp
|
| +++ b/Source/modules/indexeddb/IDBOpenDBRequest.cpp
|
| @@ -35,14 +35,14 @@
|
|
|
| namespace WebCore {
|
|
|
| -PassRefPtr<IDBOpenDBRequest> IDBOpenDBRequest::create(ScriptExecutionContext* context, PassRefPtr<IDBDatabaseCallbacksImpl> callbacks, int64_t transactionId, int64_t version)
|
| +IDBOpenDBRequest* IDBOpenDBRequest::create(ScriptExecutionContext* context, IDBDatabaseCallbacksImpl* callbacks, int64_t transactionId, int64_t version)
|
| {
|
| - RefPtr<IDBOpenDBRequest> request(adoptRef(new IDBOpenDBRequest(context, callbacks, transactionId, version)));
|
| + IDBOpenDBRequest* request = new IDBOpenDBRequest(context, callbacks, transactionId, version);
|
| request->suspendIfNeeded();
|
| - return request.release();
|
| + return request;
|
| }
|
|
|
| -IDBOpenDBRequest::IDBOpenDBRequest(ScriptExecutionContext* context, PassRefPtr<IDBDatabaseCallbacksImpl> callbacks, int64_t transactionId, int64_t version)
|
| +IDBOpenDBRequest::IDBOpenDBRequest(ScriptExecutionContext* context, IDBDatabaseCallbacksImpl* callbacks, int64_t transactionId, int64_t version)
|
| : IDBRequest(context, IDBAny::createNull(), IDBDatabaseBackendInterface::NormalTask, 0)
|
| , m_databaseCallbacks(callbacks)
|
| , m_transactionId(transactionId)
|
| @@ -70,13 +70,12 @@ void IDBOpenDBRequest::onBlocked(int64_t oldVersion)
|
| enqueueEvent(IDBVersionChangeEvent::create(IDBAny::create(oldVersion), newVersionAny.release(), eventNames().blockedEvent));
|
| }
|
|
|
| -void IDBOpenDBRequest::onUpgradeNeeded(int64_t oldVersion, PassRefPtr<IDBDatabaseBackendInterface> prpDatabaseBackend, const IDBDatabaseMetadata& metadata)
|
| +void IDBOpenDBRequest::onUpgradeNeeded(int64_t oldVersion, IDBDatabaseBackendInterface* databaseBackend, const IDBDatabaseMetadata& metadata)
|
| {
|
| IDB_TRACE("IDBOpenDBRequest::onUpgradeNeeded()");
|
| if (m_contextStopped || !scriptExecutionContext()) {
|
| - RefPtr<IDBDatabaseBackendInterface> db = prpDatabaseBackend;
|
| - db->abort(m_transactionId);
|
| - db->close(m_databaseCallbacks);
|
| + databaseBackend->abort(m_transactionId);
|
| + databaseBackend->close(m_databaseCallbacks);
|
| return;
|
| }
|
| if (!shouldEnqueueEvent())
|
| @@ -84,11 +83,9 @@ void IDBOpenDBRequest::onUpgradeNeeded(int64_t oldVersion, PassRefPtr<IDBDatabas
|
|
|
| ASSERT(m_databaseCallbacks);
|
|
|
| - RefPtr<IDBDatabaseBackendInterface> databaseBackend = prpDatabaseBackend;
|
| -
|
| - RefPtr<IDBDatabase> idbDatabase = IDBDatabase::create(scriptExecutionContext(), databaseBackend, m_databaseCallbacks);
|
| + IDBDatabase* idbDatabase = IDBDatabase::create(scriptExecutionContext(), databaseBackend, m_databaseCallbacks);
|
| idbDatabase->setMetadata(metadata);
|
| - m_databaseCallbacks->connect(idbDatabase.get());
|
| + m_databaseCallbacks->connect(idbDatabase);
|
| m_databaseCallbacks = 0;
|
|
|
| if (oldVersion == IDBDatabaseMetadata::NoIntVersion) {
|
| @@ -98,37 +95,35 @@ void IDBOpenDBRequest::onUpgradeNeeded(int64_t oldVersion, PassRefPtr<IDBDatabas
|
| IDBDatabaseMetadata oldMetadata(metadata);
|
| oldMetadata.intVersion = oldVersion;
|
|
|
| - m_transaction = IDBTransaction::create(scriptExecutionContext(), m_transactionId, idbDatabase.get(), this, oldMetadata);
|
| - m_result = IDBAny::create(idbDatabase.release());
|
| + m_transaction = IDBTransaction::create(scriptExecutionContext(), m_transactionId, idbDatabase, this, oldMetadata);
|
| + m_result = IDBAny::create(idbDatabase);
|
|
|
| if (m_version == IDBDatabaseMetadata::NoIntVersion)
|
| m_version = 1;
|
| enqueueEvent(IDBVersionChangeEvent::create(IDBAny::create(oldVersion), IDBAny::create(m_version), eventNames().upgradeneededEvent));
|
| }
|
|
|
| -void IDBOpenDBRequest::onSuccess(PassRefPtr<IDBDatabaseBackendInterface> prpBackend, const IDBDatabaseMetadata& metadata)
|
| +void IDBOpenDBRequest::onSuccess(IDBDatabaseBackendInterface* backend, const IDBDatabaseMetadata& metadata)
|
| {
|
| IDB_TRACE("IDBOpenDBRequest::onSuccess()");
|
| if (m_contextStopped || !scriptExecutionContext()) {
|
| - RefPtr<IDBDatabaseBackendInterface> db = prpBackend;
|
| - db->close(m_databaseCallbacks);
|
| + backend->close(m_databaseCallbacks);
|
| return;
|
| }
|
| if (!shouldEnqueueEvent())
|
| return;
|
|
|
| - RefPtr<IDBDatabaseBackendInterface> backend = prpBackend;
|
| - RefPtr<IDBDatabase> idbDatabase;
|
| + IDBDatabase* idbDatabase;
|
| if (m_result) {
|
| idbDatabase = m_result->idbDatabase();
|
| ASSERT(idbDatabase);
|
| ASSERT(!m_databaseCallbacks);
|
| } else {
|
| ASSERT(m_databaseCallbacks);
|
| - idbDatabase = IDBDatabase::create(scriptExecutionContext(), backend.release(), m_databaseCallbacks);
|
| - m_databaseCallbacks->connect(idbDatabase.get());
|
| + idbDatabase = IDBDatabase::create(scriptExecutionContext(), backend, m_databaseCallbacks);
|
| + m_databaseCallbacks->connect(idbDatabase);
|
| m_databaseCallbacks = 0;
|
| - m_result = IDBAny::create(idbDatabase.get());
|
| + m_result = IDBAny::create(idbDatabase);
|
| }
|
| idbDatabase->setMetadata(metadata);
|
| enqueueEvent(Event::create(eventNames().successEvent, false, false));
|
| @@ -157,4 +152,10 @@ bool IDBOpenDBRequest::dispatchEvent(PassRefPtr<Event> event)
|
| return IDBRequest::dispatchEvent(event);
|
| }
|
|
|
| +void IDBOpenDBRequest::trace(Visitor* visitor)
|
| +{
|
| + visitor->trace(m_databaseCallbacks);
|
| + IDBRequest::trace(visitor);
|
| +}
|
| +
|
| } // namespace WebCore
|
|
|