From 301efb8ec61966c93c4445920c5720c0d8d8cae5 Mon Sep 17 00:00:00 2001 From: Jan Holesovsky Date: Thu, 17 Jan 2013 10:40:06 +0100 Subject: Personas: Fix one more potential crash. Change-Id: Ib7aca26c34aa8484e8c71873805ca8e8812526a7 --- vcl/source/control/ctrl.cxx | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'vcl') diff --git a/vcl/source/control/ctrl.cxx b/vcl/source/control/ctrl.cxx index debdc4fab382..4da8279add86 100644 --- a/vcl/source/control/ctrl.cxx +++ b/vcl/source/control/ctrl.cxx @@ -429,16 +429,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 ); } -- cgit