Fix memory leak in GHOST_WindowX11::getDPIHint

XrmDatabase wasn't destroyed when it successfully found the DPI.
This commit is contained in:
Campbell Barton
2024-07-05 20:32:00 +10:00
parent c4534909b2
commit a796589ed1

View File

@@ -1542,17 +1542,22 @@ uint16_t GHOST_WindowX11::getDPIHint()
if (resMan) {
XrmDatabase xrdb = XrmGetStringDatabase(resMan);
if (xrdb) {
int dpi = -1;
char *type = nullptr;
XrmValue val;
int success = XrmGetResource(xrdb, "Xft.dpi", "Xft.Dpi", &type, &val);
if (success && type) {
if (STREQ(type, "String")) {
return atoi((char *)val.addr);
dpi = atoi((const char *)val.addr);
}
}
XrmDestroyDatabase(xrdb);
if (dpi != -1) {
return dpi;
}
}
XrmDestroyDatabase(xrdb);
}
/* Fallback to calculating DPI using X reported DPI, set using `xrandr --dpi`. */