diff options
author | Drew DeVault <sir@cmpwn.com> | 2016-11-28 08:45:27 -0500 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2016-11-28 08:45:27 -0500 |
commit | cd5694fdb5bc9beb575902ea57d037833ad8e85c (patch) | |
tree | 3f0c37edc772c792fe60dec0182acbeee086b8a0 /wayland/pango.c | |
parent | Minor README.md improvements (diff) | |
download | sway-cd5694fdb5bc9beb575902ea57d037833ad8e85c.tar.gz sway-cd5694fdb5bc9beb575902ea57d037833ad8e85c.tar.zst sway-cd5694fdb5bc9beb575902ea57d037833ad8e85c.zip |
Fix memory leaks in swaybar
Diffstat (limited to 'wayland/pango.c')
-rw-r--r-- | wayland/pango.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/wayland/pango.c b/wayland/pango.c index 5781541b..702ab15c 100644 --- a/wayland/pango.c +++ b/wayland/pango.c | |||
@@ -10,12 +10,14 @@ | |||
10 | PangoLayout *get_pango_layout(cairo_t *cairo, const char *font, const char *text, | 10 | PangoLayout *get_pango_layout(cairo_t *cairo, const char *font, const char *text, |
11 | int32_t scale, bool markup) { | 11 | int32_t scale, bool markup) { |
12 | PangoLayout *layout = pango_cairo_create_layout(cairo); | 12 | PangoLayout *layout = pango_cairo_create_layout(cairo); |
13 | PangoAttrList *attrs = pango_attr_list_new(); | 13 | PangoAttrList *attrs; |
14 | char *buf = malloc(2048); | ||
15 | if (markup) { | 14 | if (markup) { |
15 | char *buf; | ||
16 | pango_parse_markup(text, -1, 0, &attrs, &buf, NULL, NULL); | 16 | pango_parse_markup(text, -1, 0, &attrs, &buf, NULL, NULL); |
17 | pango_layout_set_markup(layout, buf, -1); | 17 | pango_layout_set_markup(layout, buf, -1); |
18 | free(buf); | ||
18 | } else { | 19 | } else { |
20 | attrs = pango_attr_list_new(); | ||
19 | pango_layout_set_text(layout, text, -1); | 21 | pango_layout_set_text(layout, text, -1); |
20 | } | 22 | } |
21 | pango_attr_list_insert(attrs, pango_attr_scale_new(scale)); | 23 | pango_attr_list_insert(attrs, pango_attr_scale_new(scale)); |
@@ -25,7 +27,6 @@ PangoLayout *get_pango_layout(cairo_t *cairo, const char *font, const char *text | |||
25 | pango_layout_set_attributes(layout, attrs); | 27 | pango_layout_set_attributes(layout, attrs); |
26 | pango_attr_list_unref(attrs); | 28 | pango_attr_list_unref(attrs); |
27 | pango_font_description_free(desc); | 29 | pango_font_description_free(desc); |
28 | free(buf); | ||
29 | return layout; | 30 | return layout; |
30 | } | 31 | } |
31 | 32 | ||