Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(124)

Side by Side Diff: third_party/WebKit/Source/modules/webdatabase/SQLTransactionStateMachine.h

Issue 2640163004: Replace ENABLE(ASSERT) with DCHECK_IS_ON(). (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Apple Inc. All rights reserved. 2 * Copyright (C) 2013 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 30 matching lines...) Expand all
41 41
42 typedef SQLTransactionState (T::*StateFunction)(); 42 typedef SQLTransactionState (T::*StateFunction)();
43 virtual StateFunction stateFunctionFor(SQLTransactionState) = 0; 43 virtual StateFunction stateFunctionFor(SQLTransactionState) = 0;
44 44
45 void setStateToRequestedState(); 45 void setStateToRequestedState();
46 void runStateMachine(); 46 void runStateMachine();
47 47
48 SQLTransactionState m_nextState; 48 SQLTransactionState m_nextState;
49 SQLTransactionState m_requestedState; 49 SQLTransactionState m_requestedState;
50 50
51 #if ENABLE(ASSERT) 51 #if DCHECK_IS_ON()
52 // The state audit trail (i.e. bread crumbs) keeps track of up to the last 52 // The state audit trail (i.e. bread crumbs) keeps track of up to the last
53 // s_sizeOfStateAuditTrail states that the state machine enters. The audit 53 // s_sizeOfStateAuditTrail states that the state machine enters. The audit
54 // trail is updated before entering each state. This is for debugging use 54 // trail is updated before entering each state. This is for debugging use
55 // only. 55 // only.
56 static const int s_sizeOfStateAuditTrail = 20; 56 static const int s_sizeOfStateAuditTrail = 20;
57 int m_nextStateAuditEntry; 57 int m_nextStateAuditEntry = 0;
58 SQLTransactionState m_stateAuditTrail[s_sizeOfStateAuditTrail]; 58 SQLTransactionState m_stateAuditTrail[s_sizeOfStateAuditTrail];
59 #endif 59 #endif
60 }; 60 };
61 61
62 #if DCHECK_IS_ON() 62 #if DCHECK_IS_ON()
63 extern const char* nameForSQLTransactionState(SQLTransactionState); 63 extern const char* nameForSQLTransactionState(SQLTransactionState);
64 #endif 64 #endif
65 65
66 template <typename T> 66 template <typename T>
67 SQLTransactionStateMachine<T>::SQLTransactionStateMachine() 67 SQLTransactionStateMachine<T>::SQLTransactionStateMachine()
68 : m_nextState(SQLTransactionState::Idle), 68 : m_nextState(SQLTransactionState::Idle),
69 m_requestedState(SQLTransactionState::Idle) 69 m_requestedState(SQLTransactionState::Idle)
70 #if ENABLE(ASSERT)
71 ,
72 m_nextStateAuditEntry(0)
73 #endif
74 { 70 {
75 #if ENABLE(ASSERT) 71 #if DCHECK_IS_ON()
76 for (int i = 0; i < s_sizeOfStateAuditTrail; i++) 72 for (int i = 0; i < s_sizeOfStateAuditTrail; i++)
77 m_stateAuditTrail[i] = SQLTransactionState::NumberOfStates; 73 m_stateAuditTrail[i] = SQLTransactionState::NumberOfStates;
78 #endif 74 #endif
79 } 75 }
80 76
81 template <typename T> 77 template <typename T>
82 void SQLTransactionStateMachine<T>::setStateToRequestedState() { 78 void SQLTransactionStateMachine<T>::setStateToRequestedState() {
83 ASSERT(m_nextState == SQLTransactionState::Idle); 79 ASSERT(m_nextState == SQLTransactionState::Idle);
84 ASSERT(m_requestedState != SQLTransactionState::Idle); 80 ASSERT(m_requestedState != SQLTransactionState::Idle);
85 m_nextState = m_requestedState; 81 m_nextState = m_requestedState;
86 m_requestedState = SQLTransactionState::Idle; 82 m_requestedState = SQLTransactionState::Idle;
87 } 83 }
88 84
89 template <typename T> 85 template <typename T>
90 void SQLTransactionStateMachine<T>::runStateMachine() { 86 void SQLTransactionStateMachine<T>::runStateMachine() {
91 ASSERT(SQLTransactionState::End < SQLTransactionState::Idle); 87 ASSERT(SQLTransactionState::End < SQLTransactionState::Idle);
92 while (m_nextState > SQLTransactionState::Idle) { 88 while (m_nextState > SQLTransactionState::Idle) {
93 ASSERT(m_nextState < SQLTransactionState::NumberOfStates); 89 ASSERT(m_nextState < SQLTransactionState::NumberOfStates);
94 StateFunction stateFunction = stateFunctionFor(m_nextState); 90 StateFunction stateFunction = stateFunctionFor(m_nextState);
95 ASSERT(stateFunction); 91 ASSERT(stateFunction);
96 92
97 #if ENABLE(ASSERT) 93 #if DCHECK_IS_ON()
98 m_stateAuditTrail[m_nextStateAuditEntry] = m_nextState; 94 m_stateAuditTrail[m_nextStateAuditEntry] = m_nextState;
99 m_nextStateAuditEntry = 95 m_nextStateAuditEntry =
100 (m_nextStateAuditEntry + 1) % s_sizeOfStateAuditTrail; 96 (m_nextStateAuditEntry + 1) % s_sizeOfStateAuditTrail;
101 #endif 97 #endif
102 m_nextState = (static_cast<T*>(this)->*stateFunction)(); 98 m_nextState = (static_cast<T*>(this)->*stateFunction)();
103 } 99 }
104 } 100 }
105 101
106 } // namespace blink 102 } // namespace blink
107 103
108 #endif // SQLTransactionStateMachine_h 104 #endif // SQLTransactionStateMachine_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698