Browse Source

Merge pull request #28557 from AndreaCatania/revfix

Fixed game crash, regression of  #26977
Rémi Verschelde 6 năm trước cách đây
mục cha
commit
48d31632a5
1 tập tin đã thay đổi với 12 bổ sung6 xóa
  1. 12 6
      platform/x11/os_x11.cpp

+ 12 - 6
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);
 }