aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2022-02-14 03:04:46 -0800
committerChris Robinson <[email protected]>2022-02-14 03:04:46 -0800
commitc6b301b72e2713ce058c65f9ed5cfe361755ea38 (patch)
tree20872f048a1155bd09c6ccf589fc1083a0471954
parent677ea00fa38b3c55372f49a99a65da5905c9ea72 (diff)
Access the proper FX slot index
-rw-r--r--al/source.cpp2
-rw-r--r--alc/context.cpp8
2 files changed, 6 insertions, 4 deletions
diff --git a/al/source.cpp b/al/source.cpp
index 30676dfc..9817674f 100644
--- a/al/source.cpp
+++ b/al/source.cpp
@@ -3989,7 +3989,7 @@ void ALsource::eax_set_fx_slots()
if (fx_slot_index.has_value())
{
eax_has_active_fx_slots_ = true;
- eax_active_fx_slots_[fx_slot_index] = true;
+ eax_active_fx_slots_[*fx_slot_index] = true;
}
}
diff --git a/alc/context.cpp b/alc/context.cpp
index c51abdae..84221c3d 100644
--- a/alc/context.cpp
+++ b/alc/context.cpp
@@ -758,12 +758,14 @@ void ALCcontext::eax_unlock_legacy_fx_slots(const EaxEaxCall& eax_call) noexcept
void ALCcontext::eax_dispatch_fx_slot(
const EaxEaxCall& eax_call)
{
- auto& fx_slot = eax_get_fx_slot(eax_call.get_fx_slot_index());
+ const auto fx_slot_index = eax_call.get_fx_slot_index();
+ if(!fx_slot_index.has_value())
+ eax_fail("Invalid fx slot index.");
- if (fx_slot.eax_dispatch(eax_call))
+ auto& fx_slot = eax_get_fx_slot(*fx_slot_index);
+ if(fx_slot.eax_dispatch(eax_call))
{
std::lock_guard<std::mutex> source_lock{mSourceLock};
-
eax_update_filters();
}
}