Bug 316182 - Double click on the canvas with the Fill tool crash
Summary: Double click on the canvas with the Fill tool crash
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Unclassified
Component: Tools (show other bugs)
Version: git master (please specify the git hash!)
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-03-05 17:49 UTC by David REVOY
Modified: 2013-03-16 16:41 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description David REVOY 2013-03-05 17:49:46 UTC
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.
Comment 1 Dmitry Kazakov 2013-03-16 16:29:10 UTC
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
Comment 2 David REVOY 2013-03-16 16:41:44 UTC
Wow, so much files changed for this bug/crash. Thanks !