Use pointer iteration in call() to avoid uint16_t movzx overhead on x86-64

This commit is contained in:
J. Nick Koston
2026-03-27 16:24:23 -10:00
parent 41f9ed7fda
commit 42fe39cfd9
+3 -2
View File
@@ -1834,8 +1834,9 @@ template<typename... Ts> class CallbackManager<void(Ts...)> {
/// Call all callbacks in this manager.
void call(Ts... args) {
for (uint16_t i = 0; i < this->size_; i++)
this->data_[i].call(args...);
for (auto *it = this->data_, *end = it + this->size_; it != end; ++it) {
it->call(args...);
}
}
uint16_t size() const { return this->size_; }