diff options
author | flow <flowlnlnln@gmail.com> | 2022-06-12 09:44:03 -0300 |
---|---|---|
committer | flow <flowlnlnln@gmail.com> | 2022-06-12 09:44:03 -0300 |
commit | 4448418b63715bc64acbb19bd75bedf725cb4165 (patch) | |
tree | 2190ac126f32617d32e117d65ce2d8419b166e54 /launcher/minecraft/mod/tasks/ModFolderLoadTask.cpp | |
parent | 9f1f37e78023d66ce01481c05fa73db9eba0882a (diff) | |
download | PrismLauncher-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.cpp | 8 |
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; |