From 95e06a409de0123fa1a73b396443731b438687ac Mon Sep 17 00:00:00 2001 From: freref <35976402+freref@users.noreply.github.com> Date: Thu, 27 Feb 2025 02:30:38 +0100 Subject: [PATCH] fix: mupdf mem leak --- src/PdfHandler.zig | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/PdfHandler.zig b/src/PdfHandler.zig index 5d2badd..fe3b2e5 100644 --- a/src/PdfHandler.zig +++ b/src/PdfHandler.zig @@ -82,11 +82,16 @@ pub fn deinit(self: *Self) void { } pub fn reloadDocument(self: *Self) !void { + if (self.temp_doc) |doc| { + c.fz_drop_document(self.ctx, doc); + self.temp_doc = null; + } + self.temp_doc = c.fz_open_document(self.ctx, self.path.ptr) orelse { std.debug.print("Failed to reload document\n", .{}); return PdfError.FailedToOpenDocument; }; - // TODO check this more efficient + self.total_pages = @as(u16, @intCast(c.fz_count_pages(self.ctx, self.temp_doc.?))); if (self.current_page_number >= self.total_pages) { self.current_page_number = self.total_pages - 1;