fix segfault: move backend selection before wm_backend is first used in main()

This commit is contained in:
Window Maker 2026-06-04 08:23:01 +02:00
parent aaf5e94b05
commit 550d7828a8
1 changed files with 11 additions and 12 deletions

View File

@ -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);