gimp but for windows: a wayland compositor
git clone https://github.com/m-col/wimp
Files | Refs | Readme

Commit 18acb95ca302afdfd22c33864d52a291864e9b88
Parent: 8b14987d7db761c042a50177541cdadd774b8a03
Author: mcol <mcol@posteo.net>
Date: 2021-01-26 21:19:18 +0000
Committer: mcol <mcol@posteo.net>
Committed: 2021-01-26 21:20:39 +0000

neaten shutting down code

src/main.c Modified

@@ -45,7 +45,7 @@
 ;
 
 
-static void free_stuff() {
+static void shutdown() {
     free(wimp.config_directory);
     free(wimp.config_file);
 
@@ -99,6 +99,9 @@
 	wl_list_remove(&mark->link);
 	free(mark);
     };
+
+    wlr_backend_destroy(wimp.backend);
+    wl_display_destroy(wimp.display);
 }
 
 
@@ -159,17 +162,10 @@
 
     // start
     const char *socket = wl_display_add_socket_auto(wimp.display);
-    if (!socket) {
-	wlr_backend_destroy(wimp.backend);
-	wl_display_destroy(wimp.display);
+    if (!socket || !wlr_backend_start(wimp.backend)) {
+	shutdown();
 	return EXIT_FAILURE;
     }
-    if (!wlr_backend_start(wimp.backend)) {
-	free_stuff();
-	wlr_backend_destroy(wimp.backend);
-	wl_display_destroy(wimp.display);
-	return 1;
-    }
     setenv("WAYLAND_DISPLAY", socket, true);
     wlr_log(WLR_INFO, "Starting with WAYLAND_DISPLAY=%s", socket);
     schedule_auto_start();
@@ -177,8 +173,6 @@
 
     // stop
     wl_display_destroy_clients(wimp.display);
-    free_stuff();
-    wlr_backend_destroy(wimp.backend);
-    wl_display_destroy(wimp.display);
+    shutdown();
     return EXIT_SUCCESS;
 }