summaryrefslogtreecommitdiff
path: root/libs/midi++2
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2010-06-03 12:37:32 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2010-06-03 12:37:32 +0000
commitb12f624890216d46aa20a51ae524abd77eb2e5b4 (patch)
treec71e96ded3877b71cbda8174fda40d20cb33ec20 /libs/midi++2
parent460d2d067545309f103089debdd68a553af29450 (diff)
modified version of a patch from robin gareus to avoid leaving pointers to data buffers owned by Session as the buffer for a JACK MIDI event. Robin - it would be good if you could test and confirm (email?) that my modified version also works
git-svn-id: svn://localhost/ardour2/branches/3.0@7218 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/midi++2')
-rw-r--r--libs/midi++2/jack_midiport.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/libs/midi++2/jack_midiport.cc b/libs/midi++2/jack_midiport.cc
index b761efdd28..ba675082a4 100644
--- a/libs/midi++2/jack_midiport.cc
+++ b/libs/midi++2/jack_midiport.cc
@@ -145,8 +145,14 @@ JACK_MidiPort::write(byte * msg, size_t msglen, timestamp_t timestamp)
}
if (vec.len[0]) {
+ if (!vec.buf[0]->owns_buffer()) {
+ vec.buf[0]->set_buffer (0, 0, true);
+ }
vec.buf[0]->set (msg, msglen, timestamp);
} else {
+ if (!vec.buf[1]->owns_buffer()) {
+ vec.buf[1]->set_buffer (0, 0, true);
+ }
vec.buf[1]->set (msg, msglen, timestamp);
}