| Index: Source/modules/indexeddb/IDBRequest.cpp
|
| diff --git a/Source/modules/indexeddb/IDBRequest.cpp b/Source/modules/indexeddb/IDBRequest.cpp
|
| index 86ae6c31d5582c69f8fd98cdd384fef00de728e5..f675ee87f9f3d097f99b01f57e9ce4fa0ac5c381 100644
|
| --- a/Source/modules/indexeddb/IDBRequest.cpp
|
| +++ b/Source/modules/indexeddb/IDBRequest.cpp
|
| @@ -47,24 +47,24 @@ namespace WebCore {
|
|
|
| DEFINE_GC_INFO(IDBCallbacks);
|
|
|
| -PassRefPtr<IDBRequest> IDBRequest::create(ScriptExecutionContext* context, PassRefPtr<IDBAny> source, IDBTransaction* transaction)
|
| +IDBRequest* IDBRequest::create(ScriptExecutionContext* context, PassRefPtr<IDBAny> source, IDBTransaction* transaction)
|
| {
|
| - RefPtr<IDBRequest> request(adoptRef(new IDBRequest(context, source, IDBDatabaseBackendInterface::NormalTask, transaction)));
|
| + IDBRequest* request = new IDBRequest(context, source, IDBDatabaseBackendInterface::NormalTask, transaction);
|
| request->suspendIfNeeded();
|
| // Requests associated with IDBFactory (open/deleteDatabase/getDatabaseNames) are not associated with transactions.
|
| if (transaction)
|
| - transaction->registerRequest(request.get());
|
| - return request.release();
|
| + transaction->registerRequest(request);
|
| + return request;
|
| }
|
|
|
| -PassRefPtr<IDBRequest> IDBRequest::create(ScriptExecutionContext* context, PassRefPtr<IDBAny> source, IDBDatabaseBackendInterface::TaskType taskType, IDBTransaction* transaction)
|
| +IDBRequest* IDBRequest::create(ScriptExecutionContext* context, PassRefPtr<IDBAny> source, IDBDatabaseBackendInterface::TaskType taskType, IDBTransaction* transaction)
|
| {
|
| - RefPtr<IDBRequest> request(adoptRef(new IDBRequest(context, source, taskType, transaction)));
|
| + IDBRequest* request = new IDBRequest(context, source, taskType, transaction);
|
| request->suspendIfNeeded();
|
| // Requests associated with IDBFactory (open/deleteDatabase/getDatabaseNames) are not associated with transactions.
|
| if (transaction)
|
| - transaction->registerRequest(request.get());
|
| - return request.release();
|
| + transaction->registerRequest(request);
|
| + return request;
|
| }
|
|
|
| IDBRequest::IDBRequest(ScriptExecutionContext* context, PassRefPtr<IDBAny> source, IDBDatabaseBackendInterface::TaskType taskType, IDBTransaction* transaction)
|
| @@ -171,9 +171,6 @@ void IDBRequest::abort()
|
| if (m_readyState == DONE)
|
| return;
|
|
|
| - // Enqueued events may be the only reference to this object.
|
| - RefPtr<IDBRequest> self(this);
|
| -
|
| EventQueue* eventQueue = scriptExecutionContext()->eventQueue();
|
| for (size_t i = 0; i < m_enqueuedEvents.size(); ++i) {
|
| bool removed = eventQueue->cancelEvent(m_enqueuedEvents[i].get());
|
| @@ -575,4 +572,10 @@ EventTargetData* IDBRequest::ensureEventTargetData()
|
| return &m_eventTargetData;
|
| }
|
|
|
| +void IDBRequest::trace(Visitor* visitor)
|
| +{
|
| + IDBCallbacks::trace(visitor);
|
| +}
|
| +
|
| +
|
| } // namespace WebCore
|
|
|