From 99ee9a1bbb60eb4fd17ff9cec252fb8c88305b56 Mon Sep 17 00:00:00 2001 From: ThorstenB Date: Fri, 21 Jan 2011 19:55:42 +0100 Subject: [PATCH] GPWS: avoid "altitude_callout_voice != NULL" assertion Properly remember which active alerts were already voiced. Added NULL-pointer safety check --- src/Instrumentation/mk_viii.cxx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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; } -- 2.39.5