fix port-unregister (on failed latency measurement)
authorRobin Gareus <robin@gareus.org>
Wed, 18 Jun 2014 18:53:43 +0000 (20:53 +0200)
committerRobin Gareus <robin@gareus.org>
Thu, 19 Jun 2014 17:44:14 +0000 (19:44 +0200)
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;