path: root/vcl/source
diff options
authorMaxim Monastirsky <>2018-01-20 19:51:34 +0200
committerMichael Stahl <>2018-01-23 21:27:09 +0100
commit4e00b175e2c222bc320ec16caa90aa1bd2c1b7a7 (patch)
tree03285cc21d9603c47d2a9b26d26444a75bcef952 /vcl/source
parent30f07eb1d412fd53da70f350322034aae5b9c561 (diff)
tdf#115023 Check mpControlData for nullptr
Control::ImplClearLayoutData happens to be called post dispose, but Control::dispose already destroyed mpControlData. So put back the nullptr check that was removed in e8b49f09074fe184374bee5062715357427ae044 ("new loplugin: useuniqueptr: vcl"). (But IMHO it's odd that we even try to send lose focus events to disposing windows. So maybe it would make sense to replace the "! pOldFocusWindow->IsDisposed()" check inside Window::ImplGrabFocus with "isDisposed()" which comes from VclReferenceBase, and set much earlier?) Change-Id: Iddaf7e05d6cb56c28a34884876770753fcf7179e Reviewed-on: Reviewed-by: Noel Grandin <> Tested-by: Jenkins <> Reviewed-by: Maxim Monastirsky <> (cherry picked from commit 2a2b37202a735b34da914c03b2f6e1495f833b51) Reviewed-on: Reviewed-by: Michael Stahl <>
Diffstat (limited to 'vcl/source')
1 files changed, 2 insertions, 1 deletions
diff --git a/vcl/source/control/ctrl.cxx b/vcl/source/control/ctrl.cxx
index b62c90563d46..5f3d23901b0a 100644
--- a/vcl/source/control/ctrl.cxx
+++ b/vcl/source/control/ctrl.cxx
@@ -328,7 +328,8 @@ void Control::SetLayoutDataParent( const Control* pParent ) const
void Control::ImplClearLayoutData() const
- mpControlData->mpLayoutData.reset();
+ if (mpControlData)
+ mpControlData->mpLayoutData.reset();
void Control::ImplDrawFrame( OutputDevice* pDev, tools::Rectangle& rRect )