From: ThorstenB Date: Fri, 21 Jan 2011 18:55:42 +0000 (+0100) Subject: GPWS: avoid "altitude_callout_voice != NULL" assertion X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=fab1284f83d6397a3b83c112192b2dff49047d20;p=flightgear.git GPWS: avoid "altitude_callout_voice != NULL" assertion Properly remember which active alerts were already voiced. Added NULL-pointer safety check --- diff --git a/src/Instrumentation/mk_viii.cxx b/src/Instrumentation/mk_viii.cxx index 745ed6c2e..8fb871a4a 100755 --- a/src/Instrumentation/mk_viii.cxx +++ b/src/Instrumentation/mk_viii.cxx @@ -2319,6 +2319,8 @@ MK_VIII::VoicePlayer::get_sample (const char *name) void MK_VIII::VoicePlayer::play (Voice *_voice, unsigned int flags) { + if (!_voice) + return; if (test_bits(flags, PLAY_NOW) || ! voice || voice->element->silence) { if (voice) @@ -2978,9 +2980,10 @@ MK_VIII::AlertHandler::update () mk->voice_player.play(mk_voice(bank_angle_pause_bank_angle)); } - // set new state - - old_alerts = voice_alerts; + // remember all alerts voiced so far... + old_alerts |= voice_alerts; + // ... forget those no longer active + old_alerts &= alerts; repeated_alerts = 0; }