fix dup free in waves/midi:

The PortMidi queue just holds a pointer to the midi events.
The same Midi events are free()d during WavesMidiBuffer::clear()
which is called at cycle start for every buffer and in the dtor
of the WavesMidiBuffer.
This commit is contained in:
Robin Gareus
2014-10-09 09:48:54 +02:00
parent 4af4938c25
commit b4cf5e279b

View File

@@ -130,7 +130,7 @@ WavesMidiDevice::close ()
if (_input_pm_stream) {
Pm_Close (_input_pm_stream);
while (1 == Pm_Dequeue (_input_queue, &waves_midi_event)) {
delete waves_midi_event;
delete waves_midi_event; // XXX possible dup free in ~WavesMidiBuffer() (?)
}
Pm_QueueDestroy (_input_queue);
@@ -143,7 +143,7 @@ WavesMidiDevice::close ()
if ( _output_pm_stream ) {
Pm_Close (_output_pm_stream);
while (1 == Pm_Dequeue (_output_queue, &waves_midi_event)) {
delete waves_midi_event;
delete waves_midi_event; // XXX possible dup free in ~WavesMidiBuffer() (?)
}
Pm_QueueDestroy (_output_queue);
_output_queue = NULL;
@@ -232,7 +232,6 @@ WavesMidiDevice::write_midi ()
}
// COMMENTED DBG LOGS */ std::cout << "WavesMidiDevice::_write_midi (): SHORTMSG used, ev->tm:" << waves_midi_event->timestamp () - LATENCY << std::endl;
}
delete waves_midi_event;
}
return;
}