aboutsummaryrefslogtreecommitdiff
path: root/backends/plugins/elf
diff options
context:
space:
mode:
authorCameron Cawley2019-12-01 21:26:42 +0000
committerFilippos Karapetis2019-12-02 11:04:57 +0200
commite2d91258b7bfb989dc099f516bb31ceb44554529 (patch)
tree2bc300f76be4d4c8294789ea78beba12da5af21f /backends/plugins/elf
parenta0c15492b41216d51903b20b2c4f2784fee7b08e (diff)
downloadscummvm-rg350-e2d91258b7bfb989dc099f516bb31ceb44554529.tar.gz
scummvm-rg350-e2d91258b7bfb989dc099f516bb31ceb44554529.tar.bz2
scummvm-rg350-e2d91258b7bfb989dc099f516bb31ceb44554529.zip
PLUGINS: Fix crash when no plugins are available
Diffstat (limited to 'backends/plugins/elf')
-rw-r--r--backends/plugins/elf/elf-provider.cpp18
1 files changed, 10 insertions, 8 deletions
diff --git a/backends/plugins/elf/elf-provider.cpp b/backends/plugins/elf/elf-provider.cpp
index 28536eee94..6d461c79df 100644
--- a/backends/plugins/elf/elf-provider.cpp
+++ b/backends/plugins/elf/elf-provider.cpp
@@ -181,15 +181,17 @@ PluginList ELFPluginProvider::getPlugins() {
PluginList pl = FilePluginProvider::getPlugins();
#if defined(UNCACHED_PLUGINS) && !defined(ELF_NO_MEM_MANAGER)
- // This static downcast is safe because all of the plugins must
- // be ELF plugins
- for (PluginList::iterator p = pl.begin(); p != pl.end(); ++p) {
- (static_cast<ELFPlugin *>(*p))->trackSize();
- }
+ if (!pl.empty()) {
+ // This static downcast is safe because all of the plugins must
+ // be ELF plugins
+ for (PluginList::iterator p = pl.begin(); p != pl.end(); ++p) {
+ (static_cast<ELFPlugin *>(*p))->trackSize();
+ }
- // The Memory Manager should now allocate space based on the information
- // it collected
- ELFMemMan.allocateHeap();
+ // The Memory Manager should now allocate space based on the information
+ // it collected
+ ELFMemMan.allocateHeap();
+ }
#endif
return pl;