[Libreoffice-commits] core.git: 2 commits - basctl/source sw/source
Caolán McNamara
caolanm at redhat.com
Thu Nov 12 04:27:43 PST 2015
basctl/source/basicide/baside3.cxx | 6 ++++++
basctl/source/inc/baside3.hxx | 3 ++-
sw/source/core/inc/sectfrm.hxx | 2 +-
sw/source/core/layout/calcmove.cxx | 2 +-
sw/source/core/layout/sectfrm.cxx | 5 ++---
5 files changed, 12 insertions(+), 6 deletions(-)
New commits:
commit 0943adb2f7ec319891c11889b40c9a69f0d1027e
Author: Caolán McNamara <caolanm at redhat.com>
Date: Thu Nov 12 12:25:16 2015 +0000
Resolves: tdf#95021 crash on closing macro dialog editor
VclPtr related, dialog dtor is never called, so timer
is never stopped and timer refers to deleted parent
data
Change-Id: I804ba082817802c0017e61c6b86c5d3694995ea8
diff --git a/basctl/source/basicide/baside3.cxx b/basctl/source/basicide/baside3.cxx
index 6b1edfb..09e3c87 100644
--- a/basctl/source/basicide/baside3.cxx
+++ b/basctl/source/basicide/baside3.cxx
@@ -97,6 +97,12 @@ DialogWindow::DialogWindow(DialogWindowLayout* pParent, ScriptDocument const& rD
SetReadOnly(true);
}
+void DialogWindow::dispose()
+{
+ pEditor.reset();
+ BaseWindow::dispose();
+}
+
void DialogWindow::LoseFocus()
{
if ( IsModified() )
diff --git a/basctl/source/inc/baside3.hxx b/basctl/source/inc/baside3.hxx
index ebafb49..3ac12e1 100644
--- a/basctl/source/inc/baside3.hxx
+++ b/basctl/source/inc/baside3.hxx
@@ -57,13 +57,14 @@ class DialogWindow: public BaseWindow
{
private:
DialogWindowLayout& rLayout;
- std::unique_ptr<DlgEditor> pEditor; // never nullptr
+ std::unique_ptr<DlgEditor> pEditor;
std::unique_ptr<SfxUndoManager> pUndoMgr; // never nullptr
OUString aCurPath;
protected:
virtual void Paint(vcl::RenderContext& rRenderContext, const Rectangle& rRect) override;
virtual void Resize() override;
+ virtual void dispose() override;
virtual void MouseButtonDown( const MouseEvent& rMEvt ) override;
virtual void MouseButtonUp( const MouseEvent& rMEvt ) override;
commit 0d33c2884f7b02e9e754d2754a45ab29ad63ddf6
Author: Caolán McNamara <caolanm at redhat.com>
Date: Thu Nov 12 11:11:24 2015 +0000
two methods with the same name that do slightly different things
depending on constness is a little worrying, lets just use different
names
Change-Id: I3e7ca96c8c7dc8d58a7415d39b937984961aa619
diff --git a/sw/source/core/inc/sectfrm.hxx b/sw/source/core/inc/sectfrm.hxx
index 9330196..b5ddcd9 100644
--- a/sw/source/core/inc/sectfrm.hxx
+++ b/sw/source/core/inc/sectfrm.hxx
@@ -129,7 +129,7 @@ public:
* We need this in the FormatWidthCols to "deflate" columns there.
*/
SwTwips Undersize(bool bOverSize = false);
- SwTwips Undersize() const;
+ SwTwips CalcUndersize() const;
/// Adapt size to surroundings
void _CheckClipping( bool bGrow, bool bMaximize );
diff --git a/sw/source/core/layout/calcmove.cxx b/sw/source/core/layout/calcmove.cxx
index 2ac5a3f..9469f2a 100644
--- a/sw/source/core/layout/calcmove.cxx
+++ b/sw/source/core/layout/calcmove.cxx
@@ -664,7 +664,7 @@ size_t SwPageFrm::GetContentHeight(const long nTop, const long nBottom) const
else if (pCnt->IsSctFrm())
{
// Grow if undersized, but don't shrink if oversized.
- const auto delta = static_cast<const SwSectionFrm*>(pCnt)->Undersize();
+ const auto delta = static_cast<const SwSectionFrm*>(pCnt)->CalcUndersize();
if (delta > 0)
nTmp += delta;
}
diff --git a/sw/source/core/layout/sectfrm.cxx b/sw/source/core/layout/sectfrm.cxx
index 1b3e9dd..00ffaec 100644
--- a/sw/source/core/layout/sectfrm.cxx
+++ b/sw/source/core/layout/sectfrm.cxx
@@ -2492,7 +2492,7 @@ void SwSectionFrm::InvalidateFootnotePos()
}
}
-SwTwips SwSectionFrm::Undersize() const
+SwTwips SwSectionFrm::CalcUndersize() const
{
SWRECTFN(this);
return InnerHeight() - (Prt().*fnRect->fnGetHeight)();
@@ -2500,8 +2500,7 @@ SwTwips SwSectionFrm::Undersize() const
SwTwips SwSectionFrm::Undersize(bool bOverSize)
{
- SWRECTFN(this);
- const auto nRet = InnerHeight() - (Prt().*fnRect->fnGetHeight)();
+ const auto nRet = CalcUndersize();
m_bUndersized = (nRet > 0);
return (nRet <= 0 && !bOverSize) ? 0 : nRet;
}
More information about the Libreoffice-commits
mailing list