@@ -126,9 +126,9 @@ struct BadAccessGuardShadow
126
126
};
127
127
128
128
// We have two versions to reduce code size at call site
129
- void BA_GUARD_NO_INLINE BAGuardOnBadAccess (StateAndStackAddr previousOperation, BadAccessGuardState toState, bool assertionOrWarning, const char * message);
129
+ void BA_GUARD_NO_INLINE BAGuardHandleBadAccess (StateAndStackAddr previousOperation, BadAccessGuardState toState, bool assertionOrWarning, const char * message);
130
130
// Both inline and no_inline! inline is necessary because we define it in a header, but still we don't actually want to inline it, hence no-inline.
131
- inline void BA_GUARD_NO_INLINE BAGuardOnBadAccess (StateAndStackAddr previousOperation, BadAccessGuardState toState) { BAGuardOnBadAccess (previousOperation, toState, true , nullptr ); }
131
+ inline void BA_GUARD_NO_INLINE BAGuardHandleBadAccess (StateAndStackAddr previousOperation, BadAccessGuardState toState) { BAGuardHandleBadAccess (previousOperation, toState, true , nullptr ); }
132
132
133
133
struct BadAccessGuardRead
134
134
{
@@ -138,15 +138,15 @@ struct BadAccessGuardRead
138
138
const StateAndStackAddr lastSeenOp = BA_GUARD_ATOMIC_RELAXED_LOAD_UPTR (shadow.stateAndInStackAddr );
139
139
if (BadAccessGuardShadow::GetState (lastSeenOp) != BAGuard_ReadingOrIdle) BA_GUARD_UNLIKELY // Early out on fast path
140
140
{
141
- BAGuardOnBadAccess (lastSeenOp, BAGuard_ReadingOrIdle);
141
+ BAGuardHandleBadAccess (lastSeenOp, BAGuard_ReadingOrIdle);
142
142
}
143
143
}
144
144
BA_GUARD_FORCE_INLINE BadAccessGuardRead (BadAccessGuardShadow& shadow, bool assertionOrWarning, char * message)
145
145
{
146
146
const StateAndStackAddr lastSeenOp = BA_GUARD_ATOMIC_RELAXED_LOAD_UPTR (shadow.stateAndInStackAddr );
147
147
if (BadAccessGuardShadow::GetState (lastSeenOp) != BAGuard_ReadingOrIdle) BA_GUARD_UNLIKELY// Early out on fast path
148
148
{
149
- BAGuardOnBadAccess (lastSeenOp, BAGuard_ReadingOrIdle, assertionOrWarning, message);
149
+ BAGuardHandleBadAccess (lastSeenOp, BAGuard_ReadingOrIdle, assertionOrWarning, message);
150
150
}
151
151
}
152
152
// We do not check again after the read itself, it would add too much cost for little benefit. Most of the issues will be caught by the write ops.
@@ -161,7 +161,7 @@ struct BadAccessGuardWrite
161
161
const StateAndStackAddr lastSeenOp = BA_GUARD_ATOMIC_RELAXED_LOAD_UPTR (shadow.stateAndInStackAddr );
162
162
if (BadAccessGuardShadow::GetState (lastSeenOp) != BAGuard_ReadingOrIdle) BA_GUARD_UNLIKELY
163
163
{
164
- BAGuardOnBadAccess (lastSeenOp, BAGuard_Writing);
164
+ BAGuardHandleBadAccess (lastSeenOp, BAGuard_Writing);
165
165
}
166
166
shadow.SetStateAtomicRelaxed (BAGuard_Writing); // Always write, so that we may trigger in other thread too
167
167
}
@@ -170,7 +170,7 @@ struct BadAccessGuardWrite
170
170
const StateAndStackAddr lastSeenOp = BA_GUARD_ATOMIC_RELAXED_LOAD_UPTR (shadow.stateAndInStackAddr );
171
171
if (BadAccessGuardShadow::GetState (lastSeenOp) != BAGuard_Writing) BA_GUARD_UNLIKELY
172
172
{
173
- BAGuardOnBadAccess (lastSeenOp, BAGuard_Writing);
173
+ BAGuardHandleBadAccess (lastSeenOp, BAGuard_Writing);
174
174
}
175
175
shadow.SetStateAtomicRelaxed (BAGuard_ReadingOrIdle);
176
176
}
@@ -190,7 +190,7 @@ struct BadAccessGuardWriteEx
190
190
const StateAndStackAddr lastSeenOp = BA_GUARD_ATOMIC_RELAXED_LOAD_UPTR (shadow.stateAndInStackAddr );
191
191
if (BadAccessGuardShadow::GetState (lastSeenOp) != BAGuard_ReadingOrIdle) BA_GUARD_UNLIKELY
192
192
{
193
- BAGuardOnBadAccess (lastSeenOp, BAGuard_Writing, assertionOrWarning, message);
193
+ BAGuardHandleBadAccess (lastSeenOp, BAGuard_Writing, assertionOrWarning, message);
194
194
}
195
195
shadow.SetStateAtomicRelaxed (BAGuard_Writing); // Always write, may trigger on other thread too
196
196
}
@@ -199,7 +199,7 @@ struct BadAccessGuardWriteEx
199
199
const StateAndStackAddr lastSeenOp = BA_GUARD_ATOMIC_RELAXED_LOAD_UPTR (shadow.stateAndInStackAddr );
200
200
if (BadAccessGuardShadow::GetState (lastSeenOp) != BAGuard_Writing) BA_GUARD_UNLIKELY
201
201
{
202
- BAGuardOnBadAccess (lastSeenOp, BAGuard_Writing, assertionOrWarning, message);
202
+ BAGuardHandleBadAccess (lastSeenOp, BAGuard_Writing, assertionOrWarning, message);
203
203
}
204
204
shadow.SetStateAtomicRelaxed (BAGuard_ReadingOrIdle);
205
205
}
@@ -214,7 +214,7 @@ struct BadAccessGuardDestroy
214
214
const StateAndStackAddr lastSeenOp = BA_GUARD_ATOMIC_RELAXED_LOAD_UPTR (shadow.stateAndInStackAddr );
215
215
if (BadAccessGuardShadow::GetState (lastSeenOp) != BAGuard_ReadingOrIdle) BA_GUARD_UNLIKELY
216
216
{
217
- BAGuardOnBadAccess (lastSeenOp, BAGuard_Writing);
217
+ BAGuardHandleBadAccess (lastSeenOp, BAGuard_Writing);
218
218
}
219
219
shadow.SetStateAtomicRelaxed (BAGuard_DestructorCalled); // Always write
220
220
}
0 commit comments