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

Commit a4058d5739fbb0ec12a1db4d4d1941518786554d
Parent: 1c3699540311da35aee7aa66fe94df2e4dd004b7
Author: mcol <mcol@posteo.net>
Date: 2021-02-06 20:42:59 +0000
Committer: mcol <mcol@posteo.net>
Committed: 2021-02-06 20:42:59 +0000

don't free keyboards twice

src/main.c Modified

@@ -120,14 +120,6 @@
 	free(output);
     };
 
-    struct keyboard *keyboard, *tkeyboard;
-    wl_list_for_each_safe(keyboard, tkeyboard, &wimp.keyboards, link) {
-	wl_list_remove(&keyboard->link);
-	wl_list_remove(&keyboard->modifier_listener.link);
-	wl_list_remove(&keyboard->key_listener.link);
-	free(keyboard);
-    };
-
     struct mark *mark, *tmark;
     wl_list_for_each_safe(mark, tmark, &wimp.marks, link) {
 	wl_list_remove(&mark->link);

src/keyboard.c Modified

@@ -114,8 +114,10 @@
     wl_list_remove(&keyboard->destroy_listener.link);
     free(keyboard);
 
-    keyboard = wl_container_of(wimp.keyboards.next, keyboard, link);
-    wlr_seat_set_keyboard(wimp.seat, keyboard->device);
+    if (!wl_list_empty(&wimp.keyboards)) {
+	keyboard = wl_container_of(wimp.keyboards.next, keyboard, link);
+	wlr_seat_set_keyboard(wimp.seat, keyboard->device);
+    }
 }