aboutsummaryrefslogtreecommitdiff
path: root/launcher/minecraft/mod/tasks/ModFolderLoadTask.cpp
diff options
context:
space:
mode:
authorflow <flowlnlnln@gmail.com>2022-06-12 09:44:03 -0300
committerflow <flowlnlnln@gmail.com>2022-06-12 09:44:03 -0300
commit4448418b63715bc64acbb19bd75bedf725cb4165 (patch)
tree2190ac126f32617d32e117d65ce2d8419b166e54 /launcher/minecraft/mod/tasks/ModFolderLoadTask.cpp
parent9f1f37e78023d66ce01481c05fa73db9eba0882a (diff)
downloadPrismLauncher-4448418b63715bc64acbb19bd75bedf725cb4165.tar.gz
PrismLauncher-4448418b63715bc64acbb19bd75bedf725cb4165.tar.bz2
PrismLauncher-4448418b63715bc64acbb19bd75bedf725cb4165.zip
fix: segfault when the same mod is present enabled and disabled at once
This maintains the previous behaviour
Diffstat (limited to 'launcher/minecraft/mod/tasks/ModFolderLoadTask.cpp')
-rw-r--r--launcher/minecraft/mod/tasks/ModFolderLoadTask.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/launcher/minecraft/mod/tasks/ModFolderLoadTask.cpp b/launcher/minecraft/mod/tasks/ModFolderLoadTask.cpp
index bde32b3e..80242fef 100644
--- a/launcher/minecraft/mod/tasks/ModFolderLoadTask.cpp
+++ b/launcher/minecraft/mod/tasks/ModFolderLoadTask.cpp
@@ -69,10 +69,12 @@ void ModFolderLoadTask::run()
m_result->mods[mod.internal_id()] = mod;
auto metadata = m_result->mods[chopped_id].metadata();
- mod.setMetadata(new Metadata::ModStruct(*metadata));
+ if (metadata) {
+ mod.setMetadata(new Metadata::ModStruct(*metadata));
- m_result->mods[mod.internal_id()].setStatus(ModStatus::Installed);
- m_result->mods.remove(chopped_id);
+ m_result->mods[mod.internal_id()].setStatus(ModStatus::Installed);
+ m_result->mods.remove(chopped_id);
+ }
}
else {
m_result->mods[mod.internal_id()] = mod;