aboutsummaryrefslogtreecommitdiff
path: root/launcher/minecraft/mod/ResourceFolderModel.h
diff options
context:
space:
mode:
authorflow <flowlnlnln@gmail.com>2022-09-03 13:26:06 -0300
committerflow <flowlnlnln@gmail.com>2022-09-03 13:37:22 -0300
commit9db27c6acc3310c9bd8cda31bcd13073eec4794e (patch)
treea3089385e4a87e96181cdbd174d142ddb12dd98b /launcher/minecraft/mod/ResourceFolderModel.h
parent42c81395b362b9a080dca3f9d62e33c547cb8259 (diff)
downloadPrismLauncher-9db27c6acc3310c9bd8cda31bcd13073eec4794e.tar.gz
PrismLauncher-9db27c6acc3310c9bd8cda31bcd13073eec4794e.tar.bz2
PrismLauncher-9db27c6acc3310c9bd8cda31bcd13073eec4794e.zip
fix: crash when adding resource packs directly in the folder
This fixes an issue in which, when adding a new resource pack externally to PolyMC, when the resource pack view was open, would crash poly. Signed-off-by: flow <flowlnlnln@gmail.com>
Diffstat (limited to 'launcher/minecraft/mod/ResourceFolderModel.h')
-rw-r--r--launcher/minecraft/mod/ResourceFolderModel.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/launcher/minecraft/mod/ResourceFolderModel.h b/launcher/minecraft/mod/ResourceFolderModel.h
index d763bec3..5652c156 100644
--- a/launcher/minecraft/mod/ResourceFolderModel.h
+++ b/launcher/minecraft/mod/ResourceFolderModel.h
@@ -257,8 +257,11 @@ void ResourceFolderModel::applyUpdates(QSet<QString>& current_set, QSet<QString>
// If the resource is resolving, but something about it changed, we don't want to
// continue the resolving.
if (current_resource->isResolving()) {
- auto task = (*m_active_parse_tasks.find(current_resource->resolutionTicket())).get();
- task->abort();
+ auto ticket = current_resource->resolutionTicket();
+ if (m_active_parse_tasks.contains(ticket)) {
+ auto task = (*m_active_parse_tasks.find(ticket)).get();
+ task->abort();
+ }
}
m_resources[row].reset(new_resource);
@@ -285,8 +288,11 @@ void ResourceFolderModel::applyUpdates(QSet<QString>& current_set, QSet<QString>
Q_ASSERT(removed_set.contains(removed_it->get()->internal_id()));
if ((*removed_it)->isResolving()) {
- auto task = (*m_active_parse_tasks.find((*removed_it)->resolutionTicket())).get();
- task->abort();
+ auto ticket = (*removed_it)->resolutionTicket();
+ if (m_active_parse_tasks.contains(ticket)) {
+ auto task = (*m_active_parse_tasks.find(ticket)).get();
+ task->abort();
+ }
}
beginRemoveRows(QModelIndex(), removed_index, removed_index);