Double click on the canvas with the Fill tool crash Krita. Small double click can happen often with a stylus , but it reproducible here with mouse as well. To reproduce : select the Fill tool, double click on canvas ( as if you want to do 2 filling actions ) Result : crash.
Git commit 16c74082295ce843acea0b07d72344dd5c1c46c2 by Dmitry Kazakov. Committed on 11/03/2013 at 23:19. Pushed by dkazakov into branch 'master'. Ported Fill Tool to strokes This patch does 3 major things: 1) Ports the tool to strokes framework 2) Adds KisSimpleProcessingVisitor class which makes creation of new processings easier (Lukas can use it now in his branch). 3) Adds lazy fetching of the "initial" image set for the qimage-based tests. Now this set is shared by all the unittests, so there is no need to store copies of it. CCMAIL:lukast.dev@gmail.com M +8 -1 krita/CMakeLists.txt M +1 -3 krita/benchmarks/CMakeLists.txt M +1 -0 krita/image/CMakeLists.txt M +2 -62 krita/image/processing/kis_crop_processing_visitor.cpp M +4 -14 krita/image/processing/kis_crop_processing_visitor.h A +88 -0 krita/image/processing/kis_simple_processing_visitor.cpp [License: GPL (v2+)] C +9 -14 krita/image/processing/kis_simple_processing_visitor.h [from: krita/image/processing/kis_crop_processing_visitor.h - 074% similarity] M +2 -3 krita/image/tests/CMakeLists.txt D +- -- krita/image/tests/data/perspective_worker_test/initial/initial_blur1_original.png D +- -- krita/image/tests/data/perspective_worker_test/initial/initial_blur1_paintDevice.png D +- -- krita/image/tests/data/perspective_worker_test/initial/initial_blur1_projection.png D +- -- krita/image/tests/data/perspective_worker_test/initial/initial_clone1_original.png D +- -- krita/image/tests/data/perspective_worker_test/initial/initial_clone1_projection.png D +- -- krita/image/tests/data/perspective_worker_test/initial/initial_paint1_original.png D +- -- krita/image/tests/data/perspective_worker_test/initial/initial_paint1_paintDevice.png D +- -- krita/image/tests/data/perspective_worker_test/initial/initial_paint1_projection.png D +- -- krita/image/tests/data/perspective_worker_test/initial/initial_root_original.png D +- -- krita/image/tests/data/perspective_worker_test/initial/initial_root_projection.png D +- -- krita/image/tests/data/perspective_worker_test/initial/initial_tmask1_paintDevice.png D +- -- krita/image/tests/data/processings/initial/initial_blur1_original.png D +- -- krita/image/tests/data/processings/initial/initial_blur1_projection.png D +- -- krita/image/tests/data/processings/initial/initial_clone1_original.png D +- -- krita/image/tests/data/processings/initial/initial_clone1_projection.png D +- -- krita/image/tests/data/processings/initial/initial_paint1_projection.png D +- -- krita/image/tests/data/processings/initial/initial_root_original.png D +- -- krita/image/tests/data/processings/initial/initial_root_projection.png M +1 -1 krita/image/tests/kis_perspective_transform_worker_test.cpp M +2 -2 krita/image/tests/kis_processings_test.cpp M +2 -1 krita/image/tiles3/tests/CMakeLists.txt M +2 -1 krita/plugins/filters/tests/CMakeLists.txt M +1 -1 krita/plugins/formats/exr/tests/CMakeLists.txt M +1 -1 krita/plugins/formats/jpeg/tests/CMakeLists.txt M +1 -1 krita/plugins/formats/png/tests/CMakeLists.txt M +1 -1 krita/plugins/formats/ppm/tests/CMakeLists.txt M +1 -1 krita/plugins/formats/psd/tests/CMakeLists.txt M +1 -1 krita/plugins/formats/tiff/tests/CMakeLists.txt M +1 -1 krita/plugins/formats/xcf/tests/CMakeLists.txt M +1 -1 krita/plugins/paintops/libbrush/tests/CMakeLists.txt M +1 -1 krita/plugins/paintops/mypaint/tests/CMakeLists.txt M +1 -0 krita/plugins/tools/defaulttools/CMakeLists.txt M +45 -111 krita/plugins/tools/defaulttools/kis_tool_fill.cc M +7 -12 krita/plugins/tools/defaulttools/kis_tool_fill.h A +114 -0 krita/plugins/tools/defaulttools/processings/fill_processing_visitor.cpp [License: GPL (v2+)] A +59 -0 krita/plugins/tools/defaulttools/processings/fill_processing_visitor.h [License: GPL (v2+)] M +7 -2 krita/plugins/tools/defaulttools/tests/CMakeLists.txt A +- -- krita/plugins/tools/defaulttools/tests/data/fill_processing/fill_color_have_selection/fill_color_have_selection_paint1_original.png A +- -- krita/plugins/tools/defaulttools/tests/data/fill_processing/fill_color_have_selection_selection_only/fill_color_have_selection_selection_only_paint1_original.png A +- -- krita/plugins/tools/defaulttools/tests/data/fill_processing/fill_color_no_selection/fill_color_no_selection_paint1_original.png A +- -- krita/plugins/tools/defaulttools/tests/data/fill_processing/fill_color_no_selection_selection_only/fill_color_no_selection_selection_only_paint1_original.png A +- -- krita/plugins/tools/defaulttools/tests/data/fill_processing/fill_pattern_have_selection/fill_pattern_have_selection_paint1_original.png A +- -- krita/plugins/tools/defaulttools/tests/data/fill_processing/fill_pattern_have_selection_selection_only/fill_pattern_have_selection_selection_only_paint1_original.png A +- -- krita/plugins/tools/defaulttools/tests/data/fill_processing/fill_pattern_no_selection/fill_pattern_no_selection_paint1_original.png A +- -- krita/plugins/tools/defaulttools/tests/data/fill_processing/fill_pattern_no_selection_selection_only/fill_pattern_no_selection_selection_only_paint1_original.png A +144 -0 krita/plugins/tools/defaulttools/tests/fill_processing_visitor_test.cpp [License: GPL (v2+)] A +39 -0 krita/plugins/tools/defaulttools/tests/fill_processing_visitor_test.h [License: GPL (v2+)] R +- -- krita/sdk/tests/data/HR_SketchPaper_01.pat [from: krita/ui/tests/data/HR_SketchPaper_01.pat - 100% similarity] A +- -- krita/sdk/tests/data/autobrush_300px.kpp A +- -- krita/sdk/tests/data/hakonepa.png A +- -- krita/sdk/tests/data/initial_with_selection/initial_with_selection_blur1_original.png C +- -- krita/sdk/tests/data/initial_with_selection/initial_with_selection_blur1_paintDevice.png [from: krita/image/tests/data/processings/initial/initial_blur1_paintDevice.png - 100% similarity] A +- -- krita/sdk/tests/data/initial_with_selection/initial_with_selection_blur1_projection.png A +- -- krita/sdk/tests/data/initial_with_selection/initial_with_selection_clone1_original.png A +- -- krita/sdk/tests/data/initial_with_selection/initial_with_selection_clone1_projection.png C +- -- krita/sdk/tests/data/initial_with_selection/initial_with_selection_paint1_original.png [from: krita/image/tests/data/processings/initial/initial_paint1_original.png - 100% similarity] R +- -- krita/sdk/tests/data/initial_with_selection/initial_with_selection_paint1_paintDevice.png [from: krita/image/tests/data/processings/initial/initial_paint1_paintDevice.png - 100% similarity] A +- -- krita/sdk/tests/data/initial_with_selection/initial_with_selection_paint1_projection.png A +- -- krita/sdk/tests/data/initial_with_selection/initial_with_selection_root_original.png A +- -- krita/sdk/tests/data/initial_with_selection/initial_with_selection_root_projection.png A +- -- krita/sdk/tests/data/initial_with_selection/initial_with_selection_selection_paintDevice.png C +- -- krita/sdk/tests/data/initial_with_selection/initial_with_selection_tmask1_paintDevice.png [from: krita/image/tests/data/processings/initial/initial_tmask1_paintDevice.png - 100% similarity] A +- -- krita/sdk/tests/data/initial_with_selection_with_shape/initial_with_selection_with_shape_blur1_original.png R +- -- krita/sdk/tests/data/initial_with_selection_with_shape/initial_with_selection_with_shape_blur1_paintDevice.png [from: krita/image/tests/data/processings/initial/initial_blur1_paintDevice.png - 100% similarity] A +- -- krita/sdk/tests/data/initial_with_selection_with_shape/initial_with_selection_with_shape_blur1_projection.png A +- -- krita/sdk/tests/data/initial_with_selection_with_shape/initial_with_selection_with_shape_clone1_original.png A +- -- krita/sdk/tests/data/initial_with_selection_with_shape/initial_with_selection_with_shape_clone1_projection.png C +- -- krita/sdk/tests/data/initial_with_selection_with_shape/initial_with_selection_with_shape_paint1_original.png [from: krita/image/tests/data/processings/initial/initial_paint1_original.png - 100% similarity] R +- -- krita/sdk/tests/data/initial_with_selection_with_shape/initial_with_selection_with_shape_paint1_paintDevice.png [from: krita/image/tests/data/processings/initial/initial_paint1_original.png - 100% similarity] A +- -- krita/sdk/tests/data/initial_with_selection_with_shape/initial_with_selection_with_shape_paint1_projection.png A +- -- krita/sdk/tests/data/initial_with_selection_with_shape/initial_with_selection_with_shape_root_original.png A +- -- krita/sdk/tests/data/initial_with_selection_with_shape/initial_with_selection_with_shape_root_projection.png A +- -- krita/sdk/tests/data/initial_with_selection_with_shape/initial_with_selection_with_shape_shape_original.png A +- -- krita/sdk/tests/data/initial_with_selection_with_shape/initial_with_selection_with_shape_shape_projection.png R +- -- krita/sdk/tests/data/initial_with_selection_with_shape/initial_with_selection_with_shape_tmask1_paintDevice.png [from: krita/image/tests/data/processings/initial/initial_tmask1_paintDevice.png - 100% similarity] M +22 -6 krita/sdk/tests/qimage_based_test.h M +5 -5 krita/sdk/tests/stroke_testing_utils.cpp M +23 -0 krita/sdk/tests/testutil.h M +10 -4 krita/sdk/tests/ui_manager_test.h M +1 -2 krita/ui/tests/CMakeLists.txt M +1 -1 krita/ui/tests/kis_node_manager_test.cpp M +1 -1 krita/ui/tests/kis_zoom_and_pan_test.cpp M +15 -0 krita/ui/tool/kis_resources_snapshot.cpp M +5 -0 krita/ui/tool/kis_resources_snapshot.h http://commits.kde.org/calligra/16c74082295ce843acea0b07d72344dd5c1c46c2
Wow, so much files changed for this bug/crash. Thanks !