fix port-unregister (on failed latency measurement)
[ardour.git] / libs / ardour / audioengine.cc
index d424300c4994e41c83693169fe5b5bbbb28b19f2..8612f44b8aa280803b3e2502e76f3e64adf6ebe4 100644 (file)
@@ -1110,11 +1110,13 @@ AudioEngine::start_latency_detection (bool for_midi)
 
                const string portname ("latency_in");
                if ((_latency_input_port = pe.register_port (portname, DataType::MIDI, IsInput)) == 0) {
+                       pe.unregister_port (_latency_input_port);
                        pe.unregister_port (_latency_output_port);
                        stop (true);
                        return -1;
                }
                if (pe.connect (_latency_input_name, make_port_name_non_relative (portname))) {
+                       pe.unregister_port (_latency_input_port);
                        pe.unregister_port (_latency_output_port);
                        stop (true);
                        return -1;
@@ -1136,11 +1138,13 @@ AudioEngine::start_latency_detection (bool for_midi)
 
                const string portname ("latency_in");
                if ((_latency_input_port = pe.register_port (portname, DataType::AUDIO, IsInput)) == 0) {
+                       pe.unregister_port (_latency_input_port);
                        pe.unregister_port (_latency_output_port);
                        stop (true);
                        return -1;
                }
                if (pe.connect (_latency_input_name, make_port_name_non_relative (portname))) {
+                       pe.unregister_port (_latency_input_port);
                        pe.unregister_port (_latency_output_port);
                        stop (true);
                        return -1;