UI: Call frontend callbacks in reverse order

Allows safely removing callbacks from within the callbacks themselves.
This commit is contained in:
jp9000
2018-01-03 17:04:03 -08:00
parent 5645c02c8f
commit 03b8fd0186
+8 -3
View File
@@ -428,7 +428,8 @@ struct OBSStudioAPI : obs_frontend_callbacks {
void on_load(obs_data_t *settings) override
{
for (auto cb : saveCallbacks)
for (size_t i = saveCallbacks.size(); i > 0; i--) {
auto cb = saveCallbacks[i - 1];
cb.callback(settings, false, cb.private_data);
}
}
@@ -443,8 +444,10 @@ struct OBSStudioAPI : obs_frontend_callbacks {
void on_save(obs_data_t *settings) override
{
for (auto cb : saveCallbacks)
for (size_t i = saveCallbacks.size(); i > 0; i--) {
auto cb = saveCallbacks[i - 1];
cb.callback(settings, true, cb.private_data);
}
}
void on_event(enum obs_frontend_event event) override
@@ -452,8 +455,10 @@ struct OBSStudioAPI : obs_frontend_callbacks {
if (main->disableSaving)
return;
for (auto cb : callbacks)
for (size_t i = callbacks.size(); i > 0; i--) {
auto cb = callbacks[i - 1];
cb.callback(event, cb.private_data);
}
}
};