From 9d349ecc6f3ea404d655a57a697f8f4ceac6d1c8 Mon Sep 17 00:00:00 2001
From: Tor Andersson <tor.andersson@artifex.com>
Date: Fri, 8 Jan 2016 12:52:52 +0100
Subject: gl: Clean up mupdf objects at exit.

Makes valgrind somewhat usable (glfw and xlib still leak plenty of
global objects at exit).
---
 platform/gl/gl-main.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

(limited to 'platform')

diff --git a/platform/gl/gl-main.c b/platform/gl/gl-main.c
index ef95246d..cfaa9431 100644
--- a/platform/gl/gl-main.c
+++ b/platform/gl/gl-main.c
@@ -808,10 +808,15 @@ static void smart_move_forward(void)
 	}
 }
 
+static void quit(void)
+{
+	glfwSetWindowShouldClose(window, 1);
+}
+
 static void do_app(void)
 {
 	if (ui.key == KEY_F4 && ui.mod == GLFW_MOD_ALT)
-		exit(0);
+		quit();
 
 	if (ui.down || ui.middle || ui.right || ui.key)
 		showinfo = 0;
@@ -821,7 +826,7 @@ static void do_app(void)
 		switch (ui.key)
 		{
 		case 'q':
-			exit(0);
+			quit();
 			break;
 		case 'm':
 			if (number == 0)
@@ -1426,9 +1431,12 @@ int main(int argc, char **argv)
 
 	fz_drop_link(ctx, links);
 	fz_drop_page(ctx, page);
+	fz_drop_outline(ctx, outline);
 	fz_drop_document(ctx, doc);
 	fz_drop_context(ctx);
 
+	glfwTerminate();
+
 	return 0;
 }
 
-- 
cgit v1.2.3