From 05801cc3d62298453385eae40ea7692386bf7f84 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Thu, 15 May 2008 05:00:28 +0000 Subject: Eliminate excessive allocation (for every event) during MidiModel iteration. git-svn-id: svn://localhost/ardour2/branches/3.0@3351 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/midi_buffer.cc | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'libs/ardour/midi_buffer.cc') 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; -- cgit v1.2.3