summaryrefslogtreecommitdiff
path: root/libs/ardour/midi_buffer.cc
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2008-05-15 05:00:28 +0000
committerDavid Robillard <d@drobilla.net>2008-05-15 05:00:28 +0000
commit05801cc3d62298453385eae40ea7692386bf7f84 (patch)
tree75882f6f0c0c9bc5c8bf9c556ce302a8f2afd629 /libs/ardour/midi_buffer.cc
parenta65044d097105a1b9915ead5e51054bb7947771e (diff)
Eliminate excessive allocation (for every event) during MidiModel iteration.
git-svn-id: svn://localhost/ardour2/branches/3.0@3351 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/midi_buffer.cc')
-rw-r--r--libs/ardour/midi_buffer.cc8
1 files changed, 3 insertions, 5 deletions
diff --git a/libs/ardour/midi_buffer.cc b/libs/ardour/midi_buffer.cc
index 4628de4a6a..9c82397142 100644
--- a/libs/ardour/midi_buffer.cc
+++ b/libs/ardour/midi_buffer.cc
@@ -145,7 +145,7 @@ MidiBuffer::push_back(const MIDI::Event& ev)
memcpy(write_loc, ev.buffer(), ev.size());
_events[_size] = ev;
- _events[_size].set_buffer(write_loc, false);
+ _events[_size].set_buffer(ev.size(), write_loc, false);
++_size;
//cerr << "MidiBuffer: pushed, size = " << _size << endl;
@@ -173,8 +173,7 @@ MidiBuffer::push_back(const jack_midi_event_t& ev)
memcpy(write_loc, ev.buffer, ev.size);
_events[_size].time() = (double)ev.time;
- _events[_size].size() = ev.size;
- _events[_size].set_buffer(write_loc, false);
+ _events[_size].set_buffer(ev.size, write_loc, false);
++_size;
//cerr << "MidiBuffer: pushed, size = " << _size << endl;
@@ -206,8 +205,7 @@ MidiBuffer::reserve(double time, size_t size)
Byte* const write_loc = _data + (_size * MAX_EVENT_SIZE);
_events[_size].time() = time;
- _events[_size].size() = size;
- _events[_size].set_buffer(write_loc, false);
+ _events[_size].set_buffer(size, write_loc, false);
++_size;
//cerr << "MidiBuffer: reserved, size = " << _size << endl;