summaryrefslogtreecommitdiff
path: root/Source/WebCore/Modules/webdatabase/SQLTransactionStateMachine.h
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@lorry>2016-04-10 09:28:39 +0000
committerLorry Tar Creator <lorry-tar-importer@lorry>2016-04-10 09:28:39 +0000
commit32761a6cee1d0dee366b885b7b9c777e67885688 (patch)
treed6bec92bebfb216f4126356e55518842c2f476a1 /Source/WebCore/Modules/webdatabase/SQLTransactionStateMachine.h
parenta4e969f4965059196ca948db781e52f7cfebf19e (diff)
downloadWebKitGtk-tarball-32761a6cee1d0dee366b885b7b9c777e67885688.tar.gz
webkitgtk-2.4.11webkitgtk-2.4.11
Diffstat (limited to 'Source/WebCore/Modules/webdatabase/SQLTransactionStateMachine.h')
-rw-r--r--Source/WebCore/Modules/webdatabase/SQLTransactionStateMachine.h27
1 files changed, 13 insertions, 14 deletions
diff --git a/Source/WebCore/Modules/webdatabase/SQLTransactionStateMachine.h b/Source/WebCore/Modules/webdatabase/SQLTransactionStateMachine.h
index b3544aa98..fff11a8ce 100644
--- a/Source/WebCore/Modules/webdatabase/SQLTransactionStateMachine.h
+++ b/Source/WebCore/Modules/webdatabase/SQLTransactionStateMachine.h
@@ -26,6 +26,8 @@
#ifndef SQLTransactionStateMachine_h
#define SQLTransactionStateMachine_h
+#if ENABLE(SQL_DATABASE)
+
#include "SQLTransactionState.h"
#include <wtf/ThreadSafeRefCounted.h>
@@ -39,7 +41,7 @@ public:
protected:
SQLTransactionStateMachine();
- typedef void (T::*StateFunction)();
+ typedef SQLTransactionState (T::* StateFunction)();
virtual StateFunction stateFunctionFor(SQLTransactionState) = 0;
void setStateToRequestedState();
@@ -90,24 +92,21 @@ template<typename T>
void SQLTransactionStateMachine<T>::runStateMachine()
{
ASSERT(SQLTransactionState::End < SQLTransactionState::Idle);
-
- if (m_nextState <= SQLTransactionState::Idle)
- return;
-
- ASSERT(m_nextState < SQLTransactionState::NumberOfStates);
-
- StateFunction stateFunction = stateFunctionFor(m_nextState);
- ASSERT(stateFunction);
+ while (m_nextState > SQLTransactionState::Idle) {
+ ASSERT(m_nextState < SQLTransactionState::NumberOfStates);
+ StateFunction stateFunction = stateFunctionFor(m_nextState);
+ ASSERT(stateFunction);
#ifndef NDEBUG
- m_stateAuditTrail[m_nextStateAuditEntry] = m_nextState;
- m_nextStateAuditEntry = (m_nextStateAuditEntry + 1) % s_sizeOfStateAuditTrail;
+ m_stateAuditTrail[m_nextStateAuditEntry] = m_nextState;
+ m_nextStateAuditEntry = (m_nextStateAuditEntry + 1) % s_sizeOfStateAuditTrail;
#endif
-
- (static_cast<T*>(this)->*stateFunction)();
- m_nextState = SQLTransactionState::Idle;
+ m_nextState = (static_cast<T*>(this)->*stateFunction)();
+ }
}
} // namespace WebCore
+#endif // ENABLE(SQL_DATABASE)
+
#endif // SQLTransactionStateMachine_h