summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Holesovsky <kendy@suse.cz>2013-01-17 10:40:06 +0100
committerNoel Power <noel.power@suse.com>2013-01-17 16:53:10 +0000
commit718802ca9c5fc01c34e1e4f4ee57ffae0ea30b7b (patch)
treee3f3b673da8ec94151bb5c5c763664a8799a2322
parentb951f2f22940356db382704cc513b2b6d42b26d2 (diff)
Personas: Fix one more potential crash.
Change-Id: Ib7aca26c34aa8484e8c71873805ca8e8812526a7 Reviewed-on: https://gerrit.libreoffice.org/1739 Reviewed-by: Noel Power <noel.power@suse.com> Tested-by: Noel Power <noel.power@suse.com>
-rw-r--r--vcl/source/control/ctrl.cxx13
1 files changed, 7 insertions, 6 deletions
diff --git a/vcl/source/control/ctrl.cxx b/vcl/source/control/ctrl.cxx
index e89e5c952587..bfa45d4061d5 100644
--- a/vcl/source/control/ctrl.cxx
+++ b/vcl/source/control/ctrl.cxx
@@ -444,16 +444,17 @@ void Control::DataChanged( const DataChangedEvent& rDCEvt)
(rDCEvt.GetType() == DATACHANGED_SETTINGS) &&
(rDCEvt.GetFlags() & SETTINGS_STYLE) )
{
- AllSettings aSettings = GetSettings();
- StyleSettings aStyleSettings = aSettings.GetStyleSettings();
- sal_uLong nOldOptions = rDCEvt.GetOldSettings()->GetStyleSettings().GetOptions();
- sal_uLong nNewOptions = aStyleSettings.GetOptions();
+ const AllSettings* pOldSettings = rDCEvt.GetOldSettings();
- if ( !(nNewOptions & STYLE_OPTION_MONO) && ( nOldOptions & STYLE_OPTION_MONO ) )
+ AllSettings aSettings = GetSettings();
+ StyleSettings aStyleSettings = aSettings.GetStyleSettings();
+ sal_uLong nNewOptions = aStyleSettings.GetOptions();
+
+ if ( pOldSettings && !(nNewOptions & STYLE_OPTION_MONO) && ( pOldSettings->GetStyleSettings().GetOptions() & STYLE_OPTION_MONO ) )
{
nNewOptions |= STYLE_OPTION_MONO;
aStyleSettings.SetOptions( nNewOptions );
- aStyleSettings.SetMonoColor( rDCEvt.GetOldSettings()->GetStyleSettings().GetMonoColor() );
+ aStyleSettings.SetMonoColor( pOldSettings->GetStyleSettings().GetMonoColor() );
aSettings.SetStyleSettings( aStyleSettings );
SetSettings( aSettings );
}