include/svx/measctrl.hxx | 3 ++- svx/source/dialog/measctrl.cxx | 13 +------------ 2 files changed, 3 insertions(+), 13 deletions(-)
New commits: commit 082b56282f60bca8f58e0c77161ea3afc2005f12 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Fri Sep 21 08:57:43 2018 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Fri Sep 21 12:59:18 2018 +0200 coverity#1439599 Uninitialized pointer field Change-Id: I083e9e01e26f294064104a4682c50a9bfc7fa09c Reviewed-on: https://gerrit.libreoffice.org/60848 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/include/svx/measctrl.hxx b/include/svx/measctrl.hxx index c3d2d4391769..db1380f6a34f 100644 --- a/include/svx/measctrl.hxx +++ b/include/svx/measctrl.hxx @@ -21,6 +21,7 @@ #include <vcl/customweld.hxx> #include <svx/svxdllapi.h> +#include <svx/svdobj.hxx> #include <memory> class SfxItemSet; @@ -33,7 +34,7 @@ class SVX_DLLPUBLIC SvxXMeasurePreview : public weld::CustomWidgetController private: MapMode m_aMapMode; - SdrMeasureObj* pMeasureObj; + std::unique_ptr<SdrMeasureObj, SdrObjectFreeOp> pMeasureObj; std::unique_ptr<SdrModel> pModel; void ResizeImpl(const Size& rSize); diff --git a/svx/source/dialog/measctrl.cxx b/svx/source/dialog/measctrl.cxx index 87c0c3f38d6c..1e641d6b5d42 100644 --- a/svx/source/dialog/measctrl.cxx +++ b/svx/source/dialog/measctrl.cxx @@ -41,7 +41,7 @@ void SvxXMeasurePreview::SetDrawingArea(weld::DrawingArea* pDrawingArea) pDrawingArea->set_size_request(aSize.Width(), aSize.Height()); pModel.reset(new SdrModel(nullptr, nullptr, true)); - pMeasureObj = new SdrMeasureObj(*pModel, Point(), Point()); + pMeasureObj.reset(new SdrMeasureObj(*pModel, Point(), Point())); ResizeImpl(aSize); Invalidate(); @@ -72,17 +72,6 @@ void SvxXMeasurePreview::Resize() SvxXMeasurePreview::~SvxXMeasurePreview() { - // No one is deleting the MeasureObj? This is not only an error but also - // a memory leak (!). Main problem is that this object is still listening to - // a StyleSheet of the model which was set. Thus, if You want to keep the object, - // set the model to 0L, if object is not needed (seems to be the case here), - // delete it. - - // always use SdrObject::Free(...) for SdrObjects (!) - SdrObject* pTemp(pMeasureObj); - SdrObject::Free(pTemp); - - pModel.reset(); } void SvxXMeasurePreview::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle&) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits