diff --git a/windows/winmme/JackWinMMEDriver.cpp b/windows/winmme/JackWinMMEDriver.cpp index fa3e1f7f..2a9085ec 100644 --- a/windows/winmme/JackWinMMEDriver.cpp +++ b/windows/winmme/JackWinMMEDriver.cpp @@ -186,7 +186,6 @@ JackWinMMEDriver::Open(bool capturing, bool playing, int in_channels, jack_info("JackWinMMEDriver::Open - input_count %d", input_count); jack_info("JackWinMMEDriver::Open - output_count %d", output_count); - if (! (input_count || output_count)) { jack_error("JackWinMMEDriver::Open - no WinMME inputs or outputs " "allocated."); diff --git a/windows/winmme/JackWinMMEInputPort.cpp b/windows/winmme/JackWinMMEInputPort.cpp index 6bb2d2a5..871934c4 100644 --- a/windows/winmme/JackWinMMEInputPort.cpp +++ b/windows/winmme/JackWinMMEInputPort.cpp @@ -111,7 +111,10 @@ JackWinMMEInputPort::JackWinMMEInputPort(const char *alias_name, WriteInError("JackWinMMEInputPort [constructor]", "midiInClose", result); } delete_sysex_buffer: - delete[] sysex_buffer; + delete[] sysex_buffer; + // auto_ptr causing crash so explicitly deleting here... + delete thread_queue; + delete write_queue; throw std::runtime_error(error_message); } diff --git a/windows/winmme/JackWinMMEOutputPort.cpp b/windows/winmme/JackWinMMEOutputPort.cpp index a3a478e1..05e97362 100644 --- a/windows/winmme/JackWinMMEOutputPort.cpp +++ b/windows/winmme/JackWinMMEOutputPort.cpp @@ -99,7 +99,11 @@ JackWinMMEOutputPort::JackWinMMEOutputPort(const char *alias_name, WriteOutError("JackWinMMEOutputPort [constructor]", "midiOutClose", result); } - raise_exception: + raise_exception: + // auto_ptr causing crash so explicitly deleting here... + delete read_queue; + delete thread_queue; + delete thread; throw std::runtime_error(error_message); }