summaryrefslogtreecommitdiffstats
path: root/wayland/pango.c
diff options
context:
space:
mode:
authorLibravatar Drew DeVault <sir@cmpwn.com>2016-11-28 08:45:27 -0500
committerLibravatar Drew DeVault <sir@cmpwn.com>2016-11-28 08:45:27 -0500
commitcd5694fdb5bc9beb575902ea57d037833ad8e85c (patch)
tree3f0c37edc772c792fe60dec0182acbeee086b8a0 /wayland/pango.c
parentMinor README.md improvements (diff)
downloadsway-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.c7
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 @@
10PangoLayout *get_pango_layout(cairo_t *cairo, const char *font, const char *text, 10PangoLayout *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