summaryrefslogtreecommitdiff
path: root/gtk2_ardour/canvas-program-change.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 /gtk2_ardour/canvas-program-change.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 'gtk2_ardour/canvas-program-change.cc')
-rw-r--r--gtk2_ardour/canvas-program-change.cc37
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;
}
-