Index: Source/modules/webdatabase/SQLTransactionCoordinator.cpp |
diff --git a/Source/modules/webdatabase/SQLTransactionCoordinator.cpp b/Source/modules/webdatabase/SQLTransactionCoordinator.cpp |
index 7d9cfdf69bae704651a5cc5690d2d1653df9cd94..ae353e0372f98f3933333abc7244e1beb3e9db9c 100644 |
--- a/Source/modules/webdatabase/SQLTransactionCoordinator.cpp |
+++ b/Source/modules/webdatabase/SQLTransactionCoordinator.cpp |
@@ -77,12 +77,15 @@ void SQLTransactionCoordinator::acquireLock(SQLTransactionBackend* transaction) |
CoordinationInfoMap::iterator coordinationInfoIterator = m_coordinationInfoMap.find(dbIdentifier); |
if (coordinationInfoIterator == m_coordinationInfoMap.end()) { |
// No pending transactions for this DB |
- coordinationInfoIterator = m_coordinationInfoMap.add(dbIdentifier, CoordinationInfo()).iterator; |
+ CoordinationInfo& info = m_coordinationInfoMap.add(dbIdentifier, CoordinationInfo()).storedValue->value; |
+ info.pendingTransactions.append(transaction); |
+ processPendingTransactions(info); |
+ } else { |
+ CoordinationInfo& info = coordinationInfoIterator->value; |
+ info.pendingTransactions.append(transaction); |
+ processPendingTransactions(info); |
} |
- CoordinationInfo& info = coordinationInfoIterator->value; |
- info.pendingTransactions.append(transaction); |
- processPendingTransactions(info); |
} |
void SQLTransactionCoordinator::releaseLock(SQLTransactionBackend* transaction) |