From 6b02d50d5ec1018bd6d62dcc8a972f292521b811 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Wed, 31 Jul 2013 19:24:26 +0200 Subject: [PATCH] clean up some valgrid "Uninitialised value was created by a heap allocation" wanings --- gtk2_ardour/level_meter.cc | 2 ++ libs/gtkmm2ext/fastmeter.cc | 23 ++++++++++++++--------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/gtk2_ardour/level_meter.cc b/gtk2_ardour/level_meter.cc index 0126e3705f..094a7ca54c 100644 --- a/gtk2_ardour/level_meter.cc +++ b/gtk2_ardour/level_meter.cc @@ -47,6 +47,7 @@ LevelMeterBase::LevelMeterBase (Session* s, PBD::EventLoop::InvalidationRecord* : parent_invalidator(ir) , _meter (0) , _meter_orientation(o) + , regular_meter_width (6) , meter_length (0) , thin_meter_width(2) { @@ -382,6 +383,7 @@ LevelMeterBase::setup_meters (int len, int initial_width, int thin_width) } if (meters[n].width != width || meters[n].length != len || color_changed || meter_type != visible_meter_type) { bool hl = meters[n].meter ? meters[n].meter->get_highlight() : false; + meters[n].packed = false; delete meters[n].meter; meters[n].meter = new FastMeter ((uint32_t) floor (Config->get_meter_hold()), width, _meter_orientation, len, c[0], c[1], c[2], c[3], c[4], diff --git a/libs/gtkmm2ext/fastmeter.cc b/libs/gtkmm2ext/fastmeter.cc index 022962a7e1..d826def7ff 100644 --- a/libs/gtkmm2ext/fastmeter.cc +++ b/libs/gtkmm2ext/fastmeter.cc @@ -57,17 +57,22 @@ FastMeter::FastMeter (long hold, unsigned long dimen, Orientation o, int len, float stp2, float stp3, int styleflags ) + : pixheight(0) + , pixwidth(0) + , _styleflags(styleflags) + , orientation(o) + , hold_cnt(hold) + , hold_state(0) + , bright_hold(false) + , current_level(0) + , current_peak(0) + , highlight(false) { - orientation = o; - hold_cnt = hold; - hold_state = 0; - bright_hold = false; - current_peak = 0; - current_level = 0; last_peak_rect.width = 0; last_peak_rect.height = 0; + last_peak_rect.x = 0; + last_peak_rect.y = 0; - highlight = false; no_rgba_overlay = ! Glib::getenv("NO_METER_SHADE").empty(); _clr[0] = clr0; @@ -92,8 +97,6 @@ FastMeter::FastMeter (long hold, unsigned long dimen, Orientation o, int len, _stp[2] = stp2; _stp[3] = stp3; - _styleflags = styleflags; - set_events (BUTTON_PRESS_MASK|BUTTON_RELEASE_MASK); pixrect.x = 1; @@ -690,6 +693,8 @@ FastMeter::set (float lvl, float peak) float old_level = current_level; float old_peak = current_peak; + if (pixwidth <= 0 || pixheight <=0) return; + if (peak == -1) { if (lvl >= current_peak) { current_peak = lvl;