Be extra cautious and only free XRRCrtcInfo if it's not nullptr in case the implementation doesn't handle it.

This commit is contained in:
Darío 2024-06-20 18:49:48 -03:00 committed by GitHub
parent e52aa9eea1
commit 7d8954e734
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -248,10 +248,13 @@ namespace RT64 {
RRMode activeModeID = 0; RRMode activeModeID = 0;
for (int i = 0; i < screenResources->ncrtc; ++i) { for (int i = 0; i < screenResources->ncrtc; ++i) {
XRRCrtcInfo *crtcInfo = XRRGetCrtcInfo(windowHandle.display, screenResources, screenResources->crtcs[i]); XRRCrtcInfo *crtcInfo = XRRGetCrtcInfo(windowHandle.display, screenResources, screenResources->crtcs[i]);
if ((crtcInfo != nullptr) && (crtcInfo->mode != 0L)) { if (crtcInfo != nullptr) {
activeModeID = crtcInfo->mode; if (crtcInfo->mode != 0L) {
activeModeID = crtcInfo->mode;
}
XRRFreeCrtcInfo(crtcInfo);
} }
XRRFreeCrtcInfo(crtcInfo);
} }
if (activeModeID == 0L) { if (activeModeID == 0L) {
@ -366,4 +369,4 @@ namespace RT64 {
#else #else
static_assert(false && "Unimplemented"); static_assert(false && "Unimplemented");
#endif #endif
}; };