diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index 9731501474..f82808dbff 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -526,8 +526,8 @@ ARDOUR_UI::save_ardour_state () XMLNode* node = new XMLNode (keyboard->get_state()); Config->add_extra_xml (*node); Config->add_extra_xml (get_transport_controllable_state()); - if (_startup && _startup->engine_control().was_used()) { - Config->add_extra_xml (_startup->engine_control().get_state()); + if (_startup && _startup->engine_control() && _startup->engine_control()->was_used()) { + Config->add_extra_xml (_startup->engine_control()->get_state()); } Config->save_state(); ui_config->save_state (); @@ -649,8 +649,8 @@ ARDOUR_UI::startup () bool backend_audio_is_running = EngineControl::engine_running(); XMLNode* audio_setup = Config->extra_xml ("AudioSetup"); - if (audio_setup) { - _startup->engine_control().set_state (*audio_setup); + if (audio_setup && _startup && _startup->engine_control()) { + _startup->engine_control()->set_state (*audio_setup); } if (!get_session_parameters (backend_audio_is_running, ARDOUR_COMMAND_LINE::new_session)) { diff --git a/gtk2_ardour/startup.h b/gtk2_ardour/startup.h index f01d972899..4d8bf8ee62 100644 --- a/gtk2_ardour/startup.h +++ b/gtk2_ardour/startup.h @@ -31,7 +31,7 @@ class ArdourStartup : public Gtk::Assistant { bool use_session_template() { return false; } Glib::ustring session_template_name() { return ""; } - EngineControl& engine_control() { return *engine_dialog; } + EngineControl* engine_control() { return engine_dialog; } // advanced session options