diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2016-04-10 09:28:39 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2016-04-10 09:28:39 +0000 |
commit | 32761a6cee1d0dee366b885b7b9c777e67885688 (patch) | |
tree | d6bec92bebfb216f4126356e55518842c2f476a1 /Source/WebCore/Modules/webdatabase/SQLTransactionStateMachine.h | |
parent | a4e969f4965059196ca948db781e52f7cfebf19e (diff) | |
download | WebKitGtk-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.h | 27 |
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 |