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 /gtk2_ardour/canvas-program-change.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 'gtk2_ardour/canvas-program-change.cc')
-rw-r--r-- | gtk2_ardour/canvas-program-change.cc | 37 |
1 files changed, 12 insertions, 25 deletions
diff --git a/gtk2_ardour/canvas-program-change.cc b/gtk2_ardour/canvas-program-change.cc index ccaf333ef5..6f7182e2cd 100644 --- a/gtk2_ardour/canvas-program-change.cc +++ b/gtk2_ardour/canvas-program-change.cc @@ -12,19 +12,16 @@ CanvasProgramChange::CanvasProgramChange( double height, double x, double y) - : Group(parent, x, y), - _region(region), - _event(event), - _text(0), - _line(0), - _rect(0), - _widget(0) + : Group(parent, x, y) + , _region(region) + , _event(event) + , _text(0) + , _line(0) + , _rect(0) { - _text = new Text(*this); - assert(_text); - ostringstream pgm(ios::ate); - pgm << int(event->pgm_number()); - _text->property_text() = pgm.str(); + char pgm_str[4]; + snprintf(pgm_str, 4, "%d", (int)event->pgm_number()); + _text = new Text(*this, 0.0, 0.0, pgm_str); _text->property_justification() = Gtk::JUSTIFY_CENTER; _text->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_MidiProgramChangeOutline.get(); double flagwidth = _text->property_text_width() + 10.0; @@ -39,22 +36,12 @@ CanvasProgramChange::CanvasProgramChange( _rect->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_MidiProgramChangeFill.get(); _text->lower_to_bottom(); _text->raise(2); - assert(_widget == 0); - assert(_text != 0); - assert(_line != 0); - assert(_rect != 0); } CanvasProgramChange::~CanvasProgramChange() { - if(_line) - delete _line; - if(_rect) - delete _rect; - if(_text) - delete _text; - if(_widget) - delete _widget; + delete _line; + delete _rect; + delete _text; } - |