| Summary: | Krita crashes when copying a selection in a layer when the selection was in a underlying selection layer | ||
|---|---|---|---|
| Product: | [Applications] krita | Reporter: | Christophe <christophe.borne> |
| Component: | Tools/Selection | Assignee: | Krita Bugs <krita-bugs-null> |
| Status: | RESOLVED FIXED | ||
| Severity: | crash | CC: | 1012468643, dimula73, simi.hrbek |
| Priority: | NOR | ||
| Version First Reported In: | 5.1.1 | ||
| Target Milestone: | --- | ||
| Platform: | Microsoft Windows | ||
| OS: | Microsoft Windows | ||
| Latest Commit: | https://invent.kde.org/graphics/krita/commit/be1bfa4e9e791edf66c496767b7e837e11d4f888 | Version Fixed/Implemented In: | |
| Sentry Crash Report: | |||
|
Description
Christophe
2022-10-01 22:53:59 UTC
The bug is partly fixed in master and krita/5.1 branch, though still has a problem: 1) Copy/Paste the layer like described in the bug (works fine) 2) Close Krita 3) See the crash on exit krita.exe caused an Access Violation at location 00007FFE2D55DD91 in module libkritaui.dll Reading from location 0000000000000000. AddrPC Params 00007FFE2D55DD91 0000000000000001 00007FFE2D55E961 000001779F5F1B50 libkritaui.dll!KisShapeSelection::KisShapeSelection+0x231 00007FFE2D55E239 0000000000000001 00007FFE7749FDE6 00000177B5C25BB0 libkritaui.dll!non-virtual thunk to KisShapeSelection::clone(KisSelection*)+0x29 00007FFE0462B329 00000177B5BC3880 00000177B5C20000 000001779F5F13D0 libkritaimage.dll!KisSelection::copyFrom+0x1d9 00007FFE0462B11D 00000177B5C0EA20 000001779F5B30A0 00000177B5BC3880 libkritaimage.dll!KisSelection::KisSelection+0x4d 00007FFE045B7DC8 00000177B5BC3880 000000550A4FE190 00000177B5C25A50 libkritaimage.dll!KisMask::KisMask+0x118 00007FFE044C051D 0000000000000000 0000000000000058 00000177AB77B890 libkritaimage.dll!KisEffectMask::KisEffectMask+0xd 00007FFE0463156F 00000177B5C25A50 00007FFE3236D9E9 00000177B5C0EA20 libkritaimage.dll!KisSelectionMask::KisSelectionMask+0xf 00007FFE04634155 000001778FA00000 0000000000000004 0000000000000058 libkritaimage.dll!KisSelectionMask::clone+0x25 00007FFE045ED63F 0000000000000002 000000550A4FE2A8 0000000000000001 libkritaimage.dll!KisNode::KisNode+0x11f 00007FFE04570774 0000000000000001 00007FFE7749FDE6 0000000000000000 libkritaimage.dll!KisLayer::KisLayer+0x14 00007FFE04616AA8 0000000000000000 0000000100000000 0000000000000000 libkritaimage.dll!KisPaintLayer::KisPaintLayer+0x18 00007FFE0431CCE5 00000177B5BC38C0 00000177B5BC38B0 000001779F5B3A70 libkritaimage.dll!KisPaintLayer::clone+0x25 00007FFE2D5DC667 0000000000000003 000000550A4FE6F8 000000550A4FE3C0 libkritaui.dll!(anonymous namespace)::safeCopyNode+0x97 00007FFE2D5DCB0D 0000000000000040 0000000000000000 000001778F830000 libkritaui.dll!createDocument+0x2cd 00007FFE2D5DD2C7 000001779F5D2AB0 00007FFE796947B1 00007FFDFD3390E8 libkritaui.dll!KisMimeData::retrieveData+0x137 00007FFDFCFB627E 00000177915D8D10 00007FFDFCFB720D 0000000000000104 Qt5Core.dll!QMimeDataPrivate::retrieveTypedData+0x2e 00007FFDFCFB7668 00000177915D8D10 00007FFE2BE7D982 00000177B5C26F50 Qt5Core.dll!QMimeData::imageData+0x28 00007FFE2BE7FD7F 000000550A4FE7C8 000000550A4FE810 0000005500000268 qwindows.dll!QWindowsMimeImage::canConvertFromMime+0x3f 00007FFE2BE84AE0 0000000000000069 00000177770089FE 0000000000008501 qwindows.dll!QWindowsMimeConverter::converterFromMime+0x140 00007FFE2BE79E95 000001779D4ED000 00007FFE796C0800 0000000000000001 qwindows.dll!QWindowsOleDataObject::GetData+0x65 00007FFE7875B9A0 0000000080004005 0000000000000011 000000550A4FE930 ole32.dll!HandleFromHandle+0x3c [com\ole32\ole232\clipbrd\clipapi.cpp @ 2048] 00007FFE7875C1F2 0000000000000000 000000550A4FE980 00000177B52FBAA0 ole32.dll!RenderCurrentFormat+0x8e [com\ole32\ole232\clipbrd\clipapi.cpp @ 4052] 00007FFE7875C318 00000000003905D4 0000017700000011 0000000000002A96 ole32.dll!RenderFormat+0x104 [com\ole32\ole232\clipbrd\clipapi.cpp @ 4185] 00007FFE78718451 0000000000000001 00007FFE00000000 000000550A4FED10 ole32.dll!ClipboardWndProc+0x2e1c1 [com\ole32\ole232\clipbrd\clipapi.cpp @ 683] 00007FFE777DE858 000000550A4FED10 00007FFE786EA290 00000000003905D4 USER32.dll!UserCallWinProcCheckWow+0x2f8 00007FFE777DE3DC 0000000000000000 0000000000000000 0000000000000011 USER32.dll!DispatchClientMessage+0x9c 00007FFE777F0C03 0000000000000000 00007FFE742508E9 00007FFE777DC260 USER32.dll!__fnDWORD+0x33 00007FFE79710EF4 00007FFE777FB36E 0000017700000000 00000177AB4EC030 ntdll.dll!KiUserCallbackDispatch+0x24 00007FFE76D82DC4 0000017700000000 00000177AB4EC030 0000000000000000 win32u.dll!NtUserGetClipboardData+0x14 00007FFE777FB36E 00000177A4DC4640 0000000000000000 000001778FFCAAA0 USER32.dll!GetClipboardData+0x5e 00007FFE7875A6AB 00000000003905D4 0000000000000001 0000000000500E00 ole32.dll!FlushViaUser32Render+0x73 [com\ole32\ole232\clipbrd\clipapi.cpp @ 2302] 00007FFE7875BCFA 0000000000000000 0000000000500EA8 0000000000000000 ole32.dll!OleFlushClipboardInternal+0xb2 [com\ole32\ole232\clipbrd\clipapi.cpp @ 2542] 00007FFE7875C68B 0000000000000002 00007FFE79689993 0000000000500EA8 ole32.dll!OleFlushClipboard+0xeb [com\ole32\ole232\clipbrd\clipapi.cpp @ 2250] 00007FFE2BEB8BD4 0000000000000090 0000000000500EA8 0000000000000000 qwindows.dll!QWindowsClipboard::clipboardViewerWndProc+0x314 00007FFE2BEB74F6 0000017791D7D180 0000000000000001 0000000000000001 qwindows.dll!qClipboardViewerWndProc+0x46 00007FFE777DE858 0000000000000068 00007FFE2BEB74B0 0000000000500EA8 USER32.dll!UserCallWinProcCheckWow+0x2f8 00007FFE777DE3DC 0000000000000000 0000000000000000 0000000000000000 USER32.dll!DispatchClientMessage+0x9c 00007FFE777F0C03 0000000000000060 0000000000000000 0000000000000000 USER32.dll!__fnDWORD+0x33 00007FFE79710EF4 00007FFE2BEB7613 00007FFDFD348700 0000000055534552 ntdll.dll!KiUserCallbackDispatch+0x24 00007FFE76D82384 00007FFDFD348700 0000000055534552 00007FFDFD32B038 win32u.dll!NtUserDestroyWindow+0x14 00007FFE2BEB7613 0000000000000000 0000000000000000 00007CD75FB10A58 qwindows.dll!QWindowsClipboard::cleanup+0x43 00007FFDFCF90E24 00000177B55929F0 000001779F5D2100 000000550A4FF400 Qt5Core.dll!qt_call_post_routines+0xc4 00007FFDFDA38282 0000000000000000 0000000000000000 0000017791F1A0D0 Qt5Widgets.dll!QApplication::~QApplication+0x22 00007FFE2D99EE28 000000550A4FF410 00007FFE00000000 000000550A4FF400 libkritaui.dll!QtSingleApplication::~QtSingleApplication+0x178 00007FFE2E2159C0 0000000000000000 00007FF641095110 0000000000000000 krita.dll!krita_main+0x4590 00007FF6410913D7 0000000000000000 0000000000000000 0000000000000000 krita.exe!__tmainCRTStartup+0x277 00007FF641091156 0000000000000000 0000000000000000 0000000000000000 krita.exe!WinMainCRTStartup+0x16 00007FFE77ED7034 0000000000000000 0000000000000000 0000000000000000 KERNEL32.DLL!BaseThreadInitThunk+0x14 00007FFE796C26A1 0000000000000000 0000000000000000 0000000000000000 ntdll.dll!RtlUserThreadStart+0x21 *** Bug 460110 has been marked as a duplicate of this bug. *** *** Bug 461249 has been marked as a duplicate of this bug. *** Git commit 82ac6fa60f846d8e8783118ef594def07b968654 by Dmitry Kazakov. Committed on 04/11/2022 at 09:02. Pushed by dkazakov into branch 'master'. Refactor KisShapeLayer to use view converter container instread of raw links The patch also refactors the constructors of the shape layer and makes them a bit more straightforward. Ideally, we should make sure that the image pointer is *not* passed to the layer in the constructor, but it seems a bit too complicated right now. M +12 -5 libs/ui/flake/KisReferenceImagesLayer.cpp M +28 -63 libs/ui/flake/kis_shape_layer.cc M +5 -4 libs/ui/flake/kis_shape_layer.h M +55 -53 libs/ui/flake/kis_shape_layer_canvas.cpp M +15 -12 libs/ui/flake/kis_shape_layer_canvas.h https://invent.kde.org/graphics/krita/commit/82ac6fa60f846d8e8783118ef594def07b968654 Git commit be1bfa4e9e791edf66c496767b7e837e11d4f888 by Dmitry Kazakov. Committed on 04/11/2022 at 09:02. Pushed by dkazakov into branch 'master'. Port KisShapeSelection to use KisImageResolutionProxy Now KisShapeSelection holds a proper link to the image resolution and handles it correctly when resolution/image changes. That is mostly important when the selection is moved from one image to another. M +3 -1 libs/image/KisEncloseAndFillPainter.cpp M +52 -2 libs/image/KisImageResolutionProxy.cpp M +49 -2 libs/image/KisImageResolutionProxy.h M +5 -1 libs/image/commands/kis_set_global_selection_command.cpp M +5 -2 libs/image/kis_cached_paint_device.h M +1 -0 libs/image/kis_convolution_painter.cc M +5 -0 libs/image/kis_default_bounds.cpp M +1 -0 libs/image/kis_default_bounds.h M +5 -1 libs/image/kis_fill_painter.cc M +16 -13 libs/image/kis_mask.cc M +37 -3 libs/image/kis_selection.cc M +12 -4 libs/image/kis_selection.h M +5 -2 libs/image/kis_selection_based_layer.cpp M +2 -0 libs/image/kis_selection_component.h M +4 -0 libs/image/kis_types.h M +5 -1 libs/image/layerstyles/KisLayerStyleKnockoutBlower.cpp M +3 -1 libs/image/tests/kis_filter_test.cpp M +5 -4 libs/image/tests/kis_image_test.cpp M +1 -0 libs/image/tests/kis_paint_device_test.cpp M +1 -0 libs/image/tests/kis_pixel_selection_test.cpp M +1 -1 libs/image/tests/kis_projection_leaf_test.cpp M +5 -3 libs/image/tests/kis_selection_test.cpp M +1 -1 libs/libkis/ColorizeMask.cpp M +1 -0 libs/libkis/Selection.cpp M +1 -1 libs/ui/flake/kis_shape_controller.cpp M +34 -23 libs/ui/flake/kis_shape_selection.cpp M +9 -5 libs/ui/flake/kis_shape_selection.h M +29 -20 libs/ui/flake/kis_shape_selection_model.cpp M +6 -2 libs/ui/flake/kis_shape_selection_model.h M +1 -5 libs/ui/kis_image_view_converter.cpp M +4 -3 libs/ui/processing/fill_processing_visitor.cpp M +1 -0 libs/ui/tests/kis_selection_decoration_test.cpp M +4 -4 libs/ui/tests/kis_shape_selection_test.cpp M +4 -4 libs/ui/tests/util.h M +1 -0 libs/ui/tool/strokes/freehand_stroke.h M +1 -1 libs/ui/tool/strokes/kis_painter_based_stroke_strategy.h M +4 -1 plugins/extensions/colorrange/dlg_colorrange.cc M +3 -1 plugins/filters/tests/kis_all_filter_test.cpp M +2 -1 plugins/generators/screentone/KisScreentoneGenerator.cpp M +1 -0 plugins/generators/seexpr/kis_wdg_seexpr_presets_save.cpp M +2 -0 plugins/generators/seexpr/tests/kis_seexpr_generator_test.cpp M +2 -2 plugins/impex/libkra/kis_kra_load_visitor.cpp M +1 -1 plugins/impex/libkra/kis_kra_save_visitor.cpp M +4 -3 plugins/impex/libkra/tests/kis_kra_saver_test.cpp M +4 -3 plugins/impex/libkra/tests/util.h M +1 -0 plugins/paintops/colorsmudge/KisColorSmudgeStrategyWithOverlay.cpp M +1 -0 plugins/tools/selectiontools/KisToolSelectMagnetic.cc M +1 -0 plugins/tools/selectiontools/kis_tool_select_elliptical.cc M +1 -0 plugins/tools/selectiontools/kis_tool_select_outline.cc M +1 -0 plugins/tools/selectiontools/kis_tool_select_path.cc M +1 -0 plugins/tools/selectiontools/kis_tool_select_polygonal.cc M +1 -0 plugins/tools/selectiontools/kis_tool_select_rectangular.cc M +1 -0 plugins/tools/selectiontools/kis_tool_select_similar.cc M +3 -1 sdk/tests/qimage_based_test.h https://invent.kde.org/graphics/krita/commit/be1bfa4e9e791edf66c496767b7e837e11d4f888 |