YACReader: Fix crash when exiting while processing a comic

When quitting YACReader while processing a comic, the comic thread needs
to be properly terminated to avoid segfaults and other possible problems.
This commit is contained in:
Felix Kauselmann
2022-11-12 23:09:27 +01:00
committed by Luis Ángel San Martín
parent 21b8b70657
commit 0414104067
3 changed files with 17 additions and 10 deletions

View File

@ -382,20 +382,23 @@ Render::Render()
Render::~Render()
{
if (comic != nullptr) {
comic->moveToThread(QApplication::instance()->thread());
comic->deleteLater();
for (auto *pr : pageRenders) {
if (pr != nullptr && pr->wait()) {
delete pr;
}
}
foreach (PageRender *pr, pageRenders)
if (pr != nullptr) {
if (pr->wait())
delete pr;
}
// TODO move to share_ptr
foreach (ImageFilter *filter, filters)
for (auto *filter : filters) {
delete filter;
}
if (comic != nullptr) {
comic->invalidate();
comic->deleteLater();
comic->thread()->quit();
comic->thread()->wait();
}
}
// Este método se encarga de forzar el renderizado de las páginas.
// Actualiza el buffer según es necesario.