summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2016-01-19 10:58:44 +0100
committerStephan Bergmann <sbergman@redhat.com>2016-01-19 11:27:59 +0100
commit8d1a24dae03690b576310e3539369916f31ac475 (patch)
tree72ca1f7410837b46dd4c6d836da0fd51a242d79e /sc
parent6dfcaa89b542efac7561a956fb8bfaf39c3b89de (diff)
Make virtual ~ScValidationDlg non-inline
...otherwise, GCC 6 would aggressively inline ScValidationDlg destruction of the VclPtr<ScValidationDlg> in ScValidityRefChildWin::ScValidityRefChildWin (sc/source/ui/view/reffact.cxx, in sc library), checking whether the vtable points at ~ScValidationDlg (instead of a derived class dtor) to directly inline the ~ScValidationDlg code, which requires the ScValidateionDlg vtable (to store it in the object's vtable during destruction), which requires the code of inline virtual ScValidationDlg::dispose and ScValidationDlg::Close, which in turn need the addresses of (non-inline) ScValidationDlg::RemoveRefDlg and ScTPValidationValue::RemoveRefDlg, both defined in the scui library and not exported from there. Change-Id: I7eb96f42deb5edd844d91e999aa5511679302c01
Diffstat (limited to 'sc')
-rw-r--r--sc/source/ui/dbgui/validate.cxx5
-rw-r--r--sc/source/ui/inc/validate.hxx2
2 files changed, 6 insertions, 1 deletions
diff --git a/sc/source/ui/dbgui/validate.cxx b/sc/source/ui/dbgui/validate.cxx
index 459c5d731fc7..db7301280b1e 100644
--- a/sc/source/ui/dbgui/validate.cxx
+++ b/sc/source/ui/dbgui/validate.cxx
@@ -96,6 +96,11 @@ ScValidationDlg::ScValidationDlg(vcl::Window* pParent, const SfxItemSet* pArgSet
get(m_pHBox, "refinputbox");
}
+ScValidationDlg::~ScValidationDlg()
+{
+ disposeOnce();
+}
+
void ScTPValidationValue::SetReferenceHdl( const ScRange&rRange , ScDocument* pDoc )
{
if ( rRange.aStart != rRange.aEnd )
diff --git a/sc/source/ui/inc/validate.hxx b/sc/source/ui/inc/validate.hxx
index 2ef7738323f2..88495571d205 100644
--- a/sc/source/ui/inc/validate.hxx
+++ b/sc/source/ui/inc/validate.hxx
@@ -176,7 +176,7 @@ class ScValidationDlg
public:
explicit ScValidationDlg( vcl::Window* pParent, const SfxItemSet* pArgSet, ScTabViewShell * pTabViewSh, SfxBindings *pB = nullptr );
- virtual ~ScValidationDlg() { disposeOnce(); }
+ virtual ~ScValidationDlg();
virtual void dispose() override
{
if( m_bOwnRefHdlr )