summaryrefslogtreecommitdiff
path: root/libs/canvas
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-07-25 17:16:32 +0200
committerRobin Gareus <robin@gareus.org>2016-07-25 17:16:32 +0200
commiteec294a97edce69ca71c972867ab708d5dd5625d (patch)
treed48202a8e6b5978ba1d6d5a83a574b3a91687460 /libs/canvas
parentac8f4baa002db37506a84088861b7a288dcdfae6 (diff)
the endless quest to plug memory leaks -- episode 378
Diffstat (limited to 'libs/canvas')
-rw-r--r--libs/canvas/canvas/ruler.h14
-rw-r--r--libs/canvas/ruler.cc13
2 files changed, 18 insertions, 9 deletions
diff --git a/libs/canvas/canvas/ruler.h b/libs/canvas/canvas/ruler.h
index 0a2e43587e..751ddcc104 100644
--- a/libs/canvas/canvas/ruler.h
+++ b/libs/canvas/canvas/ruler.h
@@ -60,14 +60,18 @@ public:
Ruler (Item*, const Metric& m);
Ruler (Item*, const Metric& m, Rect const&);
+ virtual ~Ruler () {
+ delete _font_description;
+ }
+
void set_range (double lower, double upper);
void set_font_description (Pango::FontDescription);
void set_metric (const Metric&);
void render (Rect const & area, Cairo::RefPtr<Cairo::Context>) const;
- void set_divide_colors (Color top, Color bottom);
- void set_divide_height (double);
+ void set_divide_colors (Color top, Color bottom);
+ void set_divide_height (double);
private:
const Metric* _metric;
@@ -76,9 +80,9 @@ private:
Coord _lower;
Coord _upper;
- double _divide_height;
- Color _divider_color_top;
- Color _divider_color_bottom;
+ double _divide_height;
+ Color _divider_color_top;
+ Color _divider_color_bottom;
Pango::FontDescription* _font_description;
mutable std::vector<Mark> marks;
diff --git a/libs/canvas/ruler.cc b/libs/canvas/ruler.cc
index 74755f6ecc..1c11def93a 100644
--- a/libs/canvas/ruler.cc
+++ b/libs/canvas/ruler.cc
@@ -36,7 +36,8 @@ Ruler::Ruler (Canvas* c, const Metric& m)
, _metric (&m)
, _lower (0)
, _upper (0)
- , _divide_height (-1.0)
+ , _divide_height (-1.0)
+ , _font_description (0)
, _need_marks (true)
{
}
@@ -46,7 +47,8 @@ Ruler::Ruler (Canvas* c, const Metric& m, Rect const& r)
, _metric (&m)
, _lower (0)
, _upper (0)
- , _divide_height (-1.0)
+ , _divide_height (-1.0)
+ , _font_description (0)
, _need_marks (true)
{
}
@@ -56,7 +58,8 @@ Ruler::Ruler (Item* parent, const Metric& m)
, _metric (&m)
, _lower (0)
, _upper (0)
- , _divide_height (-1.0)
+ , _divide_height (-1.0)
+ , _font_description (0)
, _need_marks (true)
{
}
@@ -66,7 +69,8 @@ Ruler::Ruler (Item* parent, const Metric& m, Rect const& r)
, _metric (&m)
, _lower (0)
, _upper (0)
- , _divide_height (-1.0)
+ , _divide_height (-1.0)
+ , _font_description (0)
, _need_marks (true)
{
}
@@ -85,6 +89,7 @@ void
Ruler::set_font_description (Pango::FontDescription fd)
{
begin_visual_change ();
+ delete _font_description;
_font_description = new Pango::FontDescription (fd);
end_visual_change ();
}