Chromium Code Reviews| Index: Source/modules/indexeddb/IDBTransaction.cpp |
| diff --git a/Source/modules/indexeddb/IDBTransaction.cpp b/Source/modules/indexeddb/IDBTransaction.cpp |
| index f28e2391f9cd793f6d654a8f100bc45b4a282d64..b6b5e5b369c7e92f10fd90027aa73d5eb7a73c55 100644 |
| --- a/Source/modules/indexeddb/IDBTransaction.cpp |
| +++ b/Source/modules/indexeddb/IDBTransaction.cpp |
| @@ -90,9 +90,6 @@ IDBTransaction::IDBTransaction(ScriptState* scriptState, int64_t id, const HashS |
| , m_objectStoreNames(objectStoreNames) |
| , m_openDBRequest(openDBRequest) |
| , m_mode(mode) |
| - , m_state(Active) |
| - , m_hasPendingActivity(true) |
| - , m_contextStopped(false) |
| , m_previousMetadata(previousMetadata) |
| { |
| if (mode == WebIDBTransactionModeVersionChange) { |
| @@ -212,11 +209,9 @@ void IDBTransaction::abort(ExceptionState& exceptionState) |
| if (m_contextStopped) |
| return; |
| - while (!m_requestList.isEmpty()) { |
| - IDBRequest* request = *m_requestList.begin(); |
| - m_requestList.remove(request); |
| + for (IDBRequest* request : m_requestList) |
|
cmumford
2015/09/03 23:21:03
I seem to remember that aborting one request can s
jsbell
2015/09/03 23:29:54
Looking at what IDBRequest::abort() does, it shoul
|
| request->abort(); |
| - } |
| + m_requestList.clear(); |
| if (backendDB()) |
| backendDB()->abort(m_id); |
| @@ -251,17 +246,16 @@ void IDBTransaction::onAbort(DOMError* error) |
| // Abort was not triggered by front-end, so outstanding requests must |
| // be aborted now. |
| - while (!m_requestList.isEmpty()) { |
| - IDBRequest* request = *m_requestList.begin(); |
| - m_requestList.remove(request); |
| + for (IDBRequest* request : m_requestList) |
| request->abort(); |
| - } |
| + m_requestList.clear(); |
| + |
| m_state = Finishing; |
| } |
| if (isVersionChange()) { |
| - for (IDBObjectStoreMetadataMap::iterator it = m_objectStoreCleanupMap.begin(); it != m_objectStoreCleanupMap.end(); ++it) |
| - it->key->setMetadata(it->value); |
| + for (auto& it : m_objectStoreCleanupMap) |
| + it.key->setMetadata(it.value); |
| m_database->setMetadata(m_previousMetadata); |
| m_database->close(); |
| } |
| @@ -364,11 +358,11 @@ bool IDBTransaction::dispatchEventInternal(PassRefPtrWillBeRawPtr<Event> event) |
| m_state = Finished; |
| // Break reference cycles. |
| - for (IDBObjectStoreMap::iterator it = m_objectStoreMap.begin(); it != m_objectStoreMap.end(); ++it) |
| - it->value->transactionFinished(); |
| + for (auto& it : m_objectStoreMap) |
| + it.value->transactionFinished(); |
| m_objectStoreMap.clear(); |
| - for (IDBObjectStoreSet::iterator it = m_deletedObjectStores.begin(); it != m_deletedObjectStores.end(); ++it) |
| - (*it)->transactionFinished(); |
| + for (auto& it : m_deletedObjectStores) |
| + it->transactionFinished(); |
| m_deletedObjectStores.clear(); |
| WillBeHeapVector<RefPtrWillBeMember<EventTarget>> targets; |