diff options
author | David Robillard <d@drobilla.net> | 2008-05-15 05:00:28 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2008-05-15 05:00:28 +0000 |
commit | 05801cc3d62298453385eae40ea7692386bf7f84 (patch) | |
tree | 75882f6f0c0c9bc5c8bf9c556ce302a8f2afd629 /libs/ardour/midi_buffer.cc | |
parent | a65044d097105a1b9915ead5e51054bb7947771e (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.cc | 8 |
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; |