diff options
author | Maxim Monastirsky <momonasmon@gmail.com> | 2018-01-20 19:51:34 +0200 |
---|---|---|
committer | Maxim Monastirsky <momonasmon@gmail.com> | 2018-01-20 21:33:30 +0100 |
commit | 2a2b37202a735b34da914c03b2f6e1495f833b51 (patch) | |
tree | 358013a0edef43cf4f02859e02a119d86f5a0da4 /vcl | |
parent | c68d08a63ed95d96914981fa320afd215a046e72 (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: https://gerrit.libreoffice.org/48246
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/source/control/ctrl.cxx | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/vcl/source/control/ctrl.cxx b/vcl/source/control/ctrl.cxx index 6a512eb4171f..4ece999ab75b 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 ) |