Alexandros Frantzis (@afrantzis) commented about dlls/winewayland.drv/wayland_surface.c:
- wayland_surface_coords_from_window(surface, win_width, win_height,
&width, &height);
- TRACE("hwnd=%p window=%dx%d,%#x processing=%dx%d,%#x current=%dx%d,%#x\n",
surface->hwnd, win_width, win_height, window->state,
surface->processing.width, surface->processing.height,
surface->processing.state, surface->current.width,
surface->current.height, surface->current.state);
- switch (surface->role)
- {
- case WAYLAND_SURFACE_ROLE_NONE:
break;
- case WAYLAND_SURFACE_ROLE_TOPLEVEL:
if (!wayland_surface_reconfigure_xdg(surface, width, height)) return FALSE;
Although the surface configuration checks we have inside wayland_surface_reconfigure_{xdg,subsurface} currently seem to protect us from accessing invalid objects (i.e., when the actual current role is NONE), it seems fragile to depend on these checks. Perhaps it would be best to explicitly check for the invalid object case in those functions, too?