Summary: | Crash when loading a document with vector data | ||
---|---|---|---|
Product: | [Applications] krita | Reporter: | Halla Rempt <halla> |
Component: | General | Assignee: | Krita Bugs <krita-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | dimula73 |
Priority: | NOR | ||
Version: | git master (please specify the git hash!) | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | Linux | ||
Latest Commit: | https://commits.kde.org/krita/89641bfc428c268ae3fe42a0f4dd350b111ebc72 | Version Fixed In: |
Description
Halla Rempt
2017-04-07 13:20:55 UTC
Most probably, the crash happens due to a hack in 619be10b :( Git commit 3ce218ca6674deeaa0539fe7b96d19577dc99641 by Dmitry Kazakov. Committed on 01/05/2017 at 07:13. Pushed by dkazakov into branch 'master'. Don't let the user close the document while saving is in progress Ideally, we should postpone closing till the saving is finished, but it is impossible to do right now, because doc->setModified() is called outside the saving lock held. Later, when we refactor the saving code and the modified state will be cleared under the lock, we can easily use KisSignalCompressor to close the document. The crash itself happened because the hack in KisPart::removeView() just skipped the deinitialization of the view and the input manager was still connected to the canvas that was destroyed. M +6 -0 libs/ui/KisDocument.cpp M +7 -0 libs/ui/KisDocument.h M +0 -7 libs/ui/KisMainWindow.cpp M +1 -13 libs/ui/KisPart.cpp M +0 -2 libs/ui/KisPart.h M +7 -0 libs/ui/KisView.cpp https://commits.kde.org/krita/3ce218ca6674deeaa0539fe7b96d19577dc99641 Git commit 89641bfc428c268ae3fe42a0f4dd350b111ebc72 by Dmitry Kazakov. Committed on 01/05/2017 at 08:17. Pushed by dkazakov into branch 'krita/3.1'. Don't let the user close the document while saving is in progress Ideally, we should postpone closing till the saving is finished, but it is impossible to do right now, because doc->setModified() is called outside the saving lock held. Later, when we refactor the saving code and the modified state will be cleared under the lock, we can easily use KisSignalCompressor to close the document. The crash itself happened because the hack in KisPart::removeView() just skipped the deinitialization of the view and the input manager was still connected to the canvas that was destroyed. # Conflicts: # libs/ui/KisDocument.cpp M +6 -0 libs/ui/KisDocument.cpp M +7 -0 libs/ui/KisDocument.h M +0 -7 libs/ui/KisMainWindow.cpp M +1 -13 libs/ui/KisPart.cpp M +0 -2 libs/ui/KisPart.h M +7 -0 libs/ui/KisView.cpp https://commits.kde.org/krita/89641bfc428c268ae3fe42a0f4dd350b111ebc72 |