From 2684e816823ef3911143e630f92bc969adece1b5 Mon Sep 17 00:00:00 2001 From: Andrea Catania Date: Wed, 1 May 2019 09:49:10 +0200 Subject: Fixed game crash, regression of #26977 Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com> --- platform/x11/os_x11.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'platform/x11') diff --git a/platform/x11/os_x11.cpp b/platform/x11/os_x11.cpp index 5a3d3acb12..d5ca3742db 100644 --- a/platform/x11/os_x11.cpp +++ b/platform/x11/os_x11.cpp @@ -1190,9 +1190,12 @@ void OS_X11::set_window_position(const Point2 &p_position) { unsigned long remaining; unsigned char *data = NULL; if (XGetWindowProperty(x11_display, x11_window, prop, 0, 4, False, AnyPropertyType, &type, &format, &len, &remaining, &data) == Success) { - long *extents = (long *)data; - x = extents[0]; - y = extents[2]; + if (format == 32 && len == 4) { + long *extents = (long *)data; + x = extents[0]; + y = extents[2]; + } + XFree(data); } } XMoveWindow(x11_display, x11_window, p_position.x - x, p_position.y - y); @@ -1218,9 +1221,12 @@ Size2 OS_X11::get_real_window_size() const { unsigned long remaining; unsigned char *data = NULL; if (XGetWindowProperty(x11_display, x11_window, prop, 0, 4, False, AnyPropertyType, &type, &format, &len, &remaining, &data) == Success) { - long *extents = (long *)data; - w += extents[0] + extents[1]; // left, right - h += extents[2] + extents[3]; // top, bottom + if (format == 32 && len == 4) { + long *extents = (long *)data; + w += extents[0] + extents[1]; // left, right + h += extents[2] + extents[3]; // top, bottom + } + XFree(data); } return Size2(w, h); } -- cgit v1.2.3