From d39c33247edd815b4d9d0bdb9ab4aff76222b21d Mon Sep 17 00:00:00 2001 From: ed Date: Wed, 6 Mar 2019 12:20:49 +0000 Subject: [PATCH] Windows: Fixed a crash in MidiInput::openDevice() --- modules/juce_audio_devices/native/juce_win32_Midi.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/modules/juce_audio_devices/native/juce_win32_Midi.cpp b/modules/juce_audio_devices/native/juce_win32_Midi.cpp index 80ff01a3a8..6da92d5f45 100644 --- a/modules/juce_audio_devices/native/juce_win32_Midi.cpp +++ b/modules/juce_audio_devices/native/juce_win32_Midi.cpp @@ -1819,20 +1819,19 @@ MidiInput* MidiInput::openDevice (const String& deviceIdentifier, MidiInputCallb if (deviceIdentifier.isEmpty() || callback == nullptr) return nullptr; - MidiInput input ({}, {}); + std::unique_ptr in (new MidiInput ({}, deviceIdentifier)); std::unique_ptr wrapper; try { - wrapper.reset (MidiService::getService().createInputWrapper (input, deviceIdentifier, *callback)); + wrapper.reset (MidiService::getService().createInputWrapper (*in, deviceIdentifier, *callback)); } catch (std::runtime_error&) { return nullptr; } - std::unique_ptr in; - in.reset (new MidiInput (wrapper->getDeviceName(), deviceIdentifier)); + in->setName (wrapper->getDeviceName()); in->internal = wrapper.release(); return in.release();