From 550d7828a8e4bcabd6197dad4962e024b249072c Mon Sep 17 00:00:00 2001 From: Window Maker Date: Thu, 4 Jun 2026 08:23:01 +0200 Subject: [PATCH] fix segfault: move backend selection before wm_backend is first used in main() --- src/main.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/main.c b/src/main.c index 8c2285b..64665ea 100644 --- a/src/main.c +++ b/src/main.c @@ -603,6 +603,17 @@ int main(int argc, char **argv) } } +#ifdef USE_WAYLAND_BACKEND + if (getenv("WMAKER_USE_WAYLAND")) + wm_backend = &wl_backend; + else +#endif +#ifdef USE_X11_BACKEND + wm_backend = &x11_backend; +#else + wm_backend = &wl_backend; +#endif + DisplayName = wm_backend->display_get_name(DisplayName); len = strlen(DisplayName) + 64; str = wmalloc(len); @@ -776,18 +787,6 @@ static int real_main(int argc, char **argv) *ptr = 0; } - /* Select backend before opening the display. */ -#ifdef USE_WAYLAND_BACKEND - if (getenv("WMAKER_USE_WAYLAND")) - wm_backend = &wl_backend; - else -#endif -#ifdef USE_X11_BACKEND - wm_backend = &x11_backend; -#else - wm_backend = &wl_backend; -#endif - /* open display */ dpy = (Display *)wm_backend->display_open(DisplayName); wm_backend->display_post_open(DisplayName, &multiHead);