summaryrefslogtreecommitdiff
path: root/src/entry.c
diff options
context:
space:
mode:
authorPhil Jones <philj56@gmail.com>2021-11-01 16:06:51 +0000
committerPhil Jones <philj56@gmail.com>2021-11-01 16:06:51 +0000
commit94fa998b7e3524ce101a977ed3516fac13461287 (patch)
tree0d4fae990021e876f7ad2deb7fbabc29a99804a4 /src/entry.c
parentf31976da251ca59ed7edb406379c12edf817711e (diff)
Add extra cleanup code to debug builds.
Also fix some memory leaks.
Diffstat (limited to 'src/entry.c')
-rw-r--r--src/entry.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/entry.c b/src/entry.c
index 63b6f87..1f1a5b8 100644
--- a/src/entry.c
+++ b/src/entry.c
@@ -114,12 +114,21 @@ void entry_init(struct entry *entry, uint32_t scale)
entry->pangocairo.surface = surface;
entry->pangocairo.cr = cr;
+ entry->pangocairo.context = context;
entry->pangocairo.layout = layout;
entry->image.width = entry->surface.width;
entry->image.height = entry->surface.height;
entry->image.buffer = cairo_image_surface_get_data(surface);
}
+void entry_destroy(struct entry *entry)
+{
+ g_object_unref(entry->pangocairo.layout);
+ g_object_unref(entry->pangocairo.context);
+ cairo_destroy(entry->pangocairo.cr);
+ cairo_surface_destroy(entry->pangocairo.surface);
+}
+
void entry_update(struct entry *entry)
{
cairo_t *cr = entry->pangocairo.cr;
@@ -176,9 +185,10 @@ void calculate_font_extents(struct entry *entry, uint32_t scale)
PangoFont *font =
pango_context_load_font(context, font_description);
PangoFontDescription *desc = pango_font_describe(font);
- log_debug("Using font: %s\n",
- pango_font_description_to_string(desc));
+ char *string = pango_font_description_to_string(desc);
+ log_debug("Using font: %s\n", string);
+ g_free(string);
pango_font_description_free(desc);
g_object_unref(font);
}