| 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
 | 
| 
 |