Review Request 111615: Wrap KoShapeBackground in QPointer
Boudewijn Rempt
boud at valdyas.org
Sat Jul 27 09:58:39 BST 2013
> On July 27, 2013, 4:53 a.m., Thorsten Zachmann wrote:
> > Using a QObject for all KoShapeBackgrounds is quite a very big overhead and also the first place why we did not use it. If this stuff fails somewhere it looks like a big bug to me. Do you have some details why the crash did happens so I can have a look.
> >
> > If we want to use smart pointers then it would be in my oppinion much better to use QSharedPointer instead of makin this a QObject and using by that quite a lot of memory for each shape.
Well, yes, after discussing this with Inge yesterday, I agreed that I should rewrite it using QSharedPointer -- or maybe make KisSharedPtr available for the rest of Calligra. QPointer is the wrong solution here anyway. I do think that we need to replace _all_ places where we do manual refcounting, though. It's simply not safe. For the crash, see the linked bug.
- Boudewijn
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/111615/#review36575
-----------------------------------------------------------
On July 20, 2013, 12:11 p.m., Boudewijn Rempt wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/111615/
> -----------------------------------------------------------
>
> (Updated July 20, 2013, 12:11 p.m.)
>
>
> Review request for Calligra and Jan Hambrecht.
>
>
> Description
> -------
>
> This patch wraps KoShapeBackground in a QPointer instead of doing manual refcounting. Bug 321714 shows, imo, that the manual refcounting is fragile and sometimes breaks. I don't remember why we weren't supposed to use QPointer (other than that it gets a little ugly with subclassing), but it seems a good fit here.
>
> There are other classes that do manual refcounting, and I think those should be converted, too -- but in another patch.
>
>
> This addresses bug 321714.
> http://bugs.kde.org/show_bug.cgi?id=321714
>
>
> Diffs
> -----
>
> karbon/plugins/tools/KarbonPatternTool.cpp 5c0ac36
> karbon/plugins/tools/KarbonPatternEditStrategy.cpp 1b4e0c0
> karbon/plugins/tools/KarbonPatternEditStrategy.h b66b78d
> karbon/plugins/tools/KarbonGradientTool.cpp 79d4fde
> karbon/plugins/tools/KarbonGradientEditStrategy.cpp 0bf30d1
> filters/karbon/wmf/WmfExport.cpp bf0aa85
> braindump/src/SectionContainer.cpp 9cbf6d7
> karbon/ui/KarbonView.cpp 7e54ede
> karbon/ui/widgets/KarbonPaletteBarWidget.cpp 5898872
> karbon/ui/widgets/KarbonSmallStylePreview.cpp f6d76cf
> krita/ui/flake/kis_shape_selection_model.cpp 4c59ad0
> krita/ui/tool/kis_tool_shape.cc aab57dd
> libs/flake/KoConnectionShape.cpp 09af2dd
> libs/flake/KoOdfWorkaround.h 5faa268
> libs/flake/KoOdfWorkaround.cpp 8a5b593
> libs/flake/KoShape.h fe6cc3f
> libs/flake/KoShape.cpp 6d14a8c
> libs/flake/KoShapeBackground.h 33253a8
> libs/flake/KoShapeBackground.cpp 9d6b29e
> libs/flake/KoShapeBackground_p.h 92acc36
> libs/flake/KoShape_p.h aa6633c
> libs/flake/commands/KoShapeBackgroundCommand.h bee749d
> libs/flake/commands/KoShapeBackgroundCommand.cpp f4acd2c
> libs/flake/svg/SvgParser.cpp 6898ffc
> libs/flake/svg/SvgStyleWriter.h 1327e27
> libs/flake/svg/SvgStyleWriter.cpp 8be614a
> libs/flake/tests/TestShapeBackgroundCommand.cpp e0b69ba
> libs/kopageapp/KoPAPageBase.cpp d56c7fe
> libs/kopageapp/tools/backgroundTool/KoPABackgroundToolWidget.cpp c0c5afa
> libs/widgets/KoFillConfigWidget.h 4d71718
> libs/widgets/KoFillConfigWidget.cpp d086eb7
> libs/widgets/KoResourcePopupAction.h 91031e4
> libs/widgets/KoResourcePopupAction.cpp 2d873ca
> plugins/chartshape/ChartShape.cpp 55d5eb8
> plugins/dockers/styledocker/StrokeFillWidget.h 212eaa0
> plugins/dockers/styledocker/StrokeFillWidget.cpp d67cabf
> plugins/dockers/styledocker/StyleDocker.h 2408188
> plugins/dockers/styledocker/StyleDocker.cpp 052b2ee
> plugins/dockers/styledocker/StylePreview.h db33b3f
> plugins/dockers/styledocker/StylePreview.cpp 39f8b42
> plugins/pathshapes/enhancedpath/EnhancedPathParameter.cpp 29d2ad2
> plugins/textshape/TextShape.cpp b230f0a
> words/part/KWPageStyle.h b2eeb43
> words/part/KWPageStyle.cpp f53dab5
> words/part/KWPageStyle_p.h 356af3a
> words/part/frames/KWFrameLayout.cpp 6b2a31e
>
> Diff: http://git.reviewboard.kde.org/r/111615/diff/
>
>
> Testing
> -------
>
>
> Thanks,
>
> Boudewijn Rempt
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/calligra-devel/attachments/20130727/c728f03c/attachment.htm>
More information about the calligra-devel
mailing list