OSDN Git Service

kstyles: do not attempt to free invalid X11 pixmap handles
authorIvailo Monev <xakepa10@gmail.com>
Sat, 5 Feb 2022 07:02:47 +0000 (09:02 +0200)
committerIvailo Monev <xakepa10@gmail.com>
Sat, 5 Feb 2022 07:02:47 +0000 (09:02 +0200)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
kstyles/oxygen/oxygenshadowhelper.cpp

index b225bd5..54d44a9 100644 (file)
@@ -65,8 +65,16 @@ namespace Oxygen
     {
 
         #ifdef Q_WS_X11
-        foreach( const Qt::HANDLE& value, _pixmaps  ) XFreePixmap( QX11Info::display(), value );
-        foreach( const Qt::HANDLE& value, _dockPixmaps  ) XFreePixmap( QX11Info::display(), value );
+        foreach( const Qt::HANDLE& value, _pixmaps ) {
+            if (value != 0) {
+                XFreePixmap( QX11Info::display(), value );
+            }
+        }
+        foreach( const Qt::HANDLE& value, _dockPixmaps ) {
+            if (value != 0) {
+                XFreePixmap( QX11Info::display(), value );
+            }
+        }
         #endif
 
         delete _shadowCache;
@@ -78,8 +86,16 @@ namespace Oxygen
     {
         #ifdef Q_WS_X11
         // round pixmaps
-        foreach( const Qt::HANDLE& value, _pixmaps  ) XFreePixmap( QX11Info::display(), value );
-        foreach( const Qt::HANDLE& value, _dockPixmaps  ) XFreePixmap( QX11Info::display(), value );
+        foreach( const Qt::HANDLE& value, _pixmaps ) {
+            if (value != 0) {
+                XFreePixmap( QX11Info::display(), value );
+            }
+        }
+        foreach( const Qt::HANDLE& value, _dockPixmaps ) {
+            if (value != 0) {
+                XFreePixmap( QX11Info::display(), value );
+            }
+        }
         #endif
 
         _pixmaps.clear();