summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/osdmodule.cpp
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2019-09-20 02:26:16 +1000
committer Vas Crabb <vas@vastheman.com>2019-09-20 02:26:16 +1000
commit8b233839ba630012026321070d77153fdf5a19b2 (patch)
tree6eaa5e7bdf8bb413a1abbcce95284917d75d1f76 /src/osd/modules/osdmodule.cpp
parent37b02ce7de385c5c0a32853e52a861b8ff329077 (diff)
(nw) get rid of the rest of assert_always - it's better to be explicit about what this thing is supposed to do
Diffstat (limited to 'src/osd/modules/osdmodule.cpp')
-rw-r--r--src/osd/modules/osdmodule.cpp19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/osd/modules/osdmodule.cpp b/src/osd/modules/osdmodule.cpp
index 45664295cfb..75adc5c75bb 100644
--- a/src/osd/modules/osdmodule.cpp
+++ b/src/osd/modules/osdmodule.cpp
@@ -7,6 +7,9 @@
#include "modules/osdmodule.h"
+#include <algorithm>
+
+
osd_module_manager::osd_module_manager()
{
for (int i=0; i<MAX_MODULES; i++)
@@ -25,17 +28,15 @@ osd_module_manager::~osd_module_manager()
void osd_module_manager::register_module(const module_type &mod_type)
{
+ auto const slot = std::find(std::begin(m_modules), std::end(m_modules), nullptr);
+ if (std::end(m_modules) == slot)
+ throw emu_fatalerror("osd_module_manager::register_module: Module registration beyond MAX_MODULES!");
+
osd_module *module = mod_type();
if (module->probe())
{
osd_printf_verbose("===> registered module %s %s\n", module->name(), module->type());
-
- int i;
- for (i = 0; i < MAX_MODULES && m_modules[i] != nullptr; i++)
- ;
-
- assert_always(i < MAX_MODULES, "Module registration beyond MAX_MODULES!");
- m_modules[i] = module;
+ *slot = module;
}
else
{
@@ -51,8 +52,8 @@ bool osd_module_manager::type_has_name(const char *type, const char *name) const
osd_module *osd_module_manager::get_module_generic(const char *type, const char *name)
{
- int i = get_module_index(type, name);
- if (i>=0)
+ int const i = get_module_index(type, name);
+ if (i >= 0)
return m_modules[i];
else
return nullptr;