fix: don't give shared pointer to obj. external to the model
It causes some weird problems and adds refcounting overhead. Signed-off-by: flow <flowlnlnln@gmail.com>
This commit is contained in:
@ -36,7 +36,7 @@ static ModAPI::ModLoaderTypes mcLoaders(BaseInstance* inst)
|
||||
ModUpdateDialog::ModUpdateDialog(QWidget* parent,
|
||||
BaseInstance* instance,
|
||||
const std::shared_ptr<ModFolderModel> mods,
|
||||
QList<Mod::Ptr>& search_for)
|
||||
QList<Mod*>& search_for)
|
||||
: ReviewMessageBox(parent, tr("Confirm mods to update"), "")
|
||||
, m_parent(parent)
|
||||
, m_mod_model(mods)
|
||||
@ -226,9 +226,8 @@ auto ModUpdateDialog::ensureMetadata() -> bool
|
||||
};
|
||||
|
||||
for (auto candidate : m_candidates) {
|
||||
auto* candidate_ptr = candidate.get();
|
||||
if (candidate->status() != ModStatus::NoMetadata) {
|
||||
onMetadataEnsured(candidate_ptr);
|
||||
onMetadataEnsured(candidate);
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -236,7 +235,7 @@ auto ModUpdateDialog::ensureMetadata() -> bool
|
||||
continue;
|
||||
|
||||
if (confirm_rest) {
|
||||
addToTmp(candidate_ptr, provider_rest);
|
||||
addToTmp(candidate, provider_rest);
|
||||
should_try_others.insert(candidate->internal_id(), try_others_rest);
|
||||
continue;
|
||||
}
|
||||
@ -261,7 +260,7 @@ auto ModUpdateDialog::ensureMetadata() -> bool
|
||||
should_try_others.insert(candidate->internal_id(), response.try_others);
|
||||
|
||||
if (confirmed)
|
||||
addToTmp(candidate_ptr, response.chosen);
|
||||
addToTmp(candidate, response.chosen);
|
||||
}
|
||||
|
||||
if (!modrinth_tmp.empty()) {
|
||||
|
@ -19,7 +19,7 @@ class ModUpdateDialog final : public ReviewMessageBox {
|
||||
explicit ModUpdateDialog(QWidget* parent,
|
||||
BaseInstance* instance,
|
||||
const std::shared_ptr<ModFolderModel> mod_model,
|
||||
QList<Mod::Ptr>& search_for);
|
||||
QList<Mod*>& search_for);
|
||||
|
||||
void checkCandidates();
|
||||
|
||||
@ -46,7 +46,7 @@ class ModUpdateDialog final : public ReviewMessageBox {
|
||||
|
||||
const std::shared_ptr<ModFolderModel> m_mod_model;
|
||||
|
||||
QList<Mod::Ptr>& m_candidates;
|
||||
QList<Mod*>& m_candidates;
|
||||
QList<Mod*> m_modrinth_to_update;
|
||||
QList<Mod*> m_flame_to_update;
|
||||
|
||||
|
Reference in New Issue
Block a user