Hi,

I'm using rxvt-unicode-9.31, with a background image with focus_fade. This shows my background the way I like it, but it slowly eats all the memory until it starts swapping.

Digging around I seem to have found the issue (if I understand it correctly): in rxvt_img::muladd an image cc is composed, and based on that another image cc2 is composed. That image cc2 gets used, but cc and its pixmap are kept hanging around and it never gets freed/destroyed. That results in a memleak the size of my backgroundpic every muladd is called = every time the focus on my terminal window changes.

Explicitly destroying cc->destimg at the end of muladd fixed the leak for me.

diff -Naur rxvt-unicode-9.31-orig/src/rxvtimg.C rxvt-unicode-9.31/src/rxvtimg.C
--- rxvt-unicode-9.31-orig/src/rxvtimg.C        2021-05-09 17:04:44.000000000 
+0200
+++ rxvt-unicode-9.31/src/rxvtimg.C     2024-01-09 20:59:30.081764268 +0100
@@ -658,6 +658,7 @@

XRenderComposite (cc.dpy, PictOpSrc, cc2.src, None, cc2.dst, 0, 0, 0, 0, 0, 0, w * 2, h);

+  cc.dstimg->destroy();
   return cc2;
 }


I'm no good at c++ so people who are can no doubt find a proper solution, but maybe this will help someone.

Bye,
Erik-Jan

_______________________________________________
rxvt-unicode mailing list
rxvt-unicode@lists.schmorp.de
http://lists.schmorp.de/mailman/listinfo/rxvt-unicode

Reply via email to