mirror of
https://github.com/YACReader/yacreader
synced 2025-07-17 20:44:32 -04:00
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:
committed by
Luis Ángel San Martín
parent
21b8b70657
commit
0414104067
@ -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.
|
||||
|
Reference in New Issue
Block a user