--- rxvt-unicode/src/rxvtimg.C 2019/09/17 18:29:02 1.111 +++ rxvt-unicode/src/rxvtimg.C 2024/01/10 06:06:16 1.114 @@ -400,7 +400,7 @@ rxvt_img * rxvt_img::new_from_file (rxvt_screen *s, const char *filename) { - GError *err; + GError *err = 0; GdkPixbuf *pb = gdk_pixbuf_new_from_file (filename, &err); if (!pb) @@ -608,7 +608,8 @@ { // STEP 1: double the image width, fill all odd columns with white (==1) - composer cc (this, new rxvt_img (d, format, 0, 0, w * 2, h, repeat)); + rxvt_img *img = new rxvt_img (d, format, 0, 0, w * 2, h, repeat); + composer cc (this, img); // why the hell does XRenderSetPictureTransform want a writable matrix :( // that keeps us from just static const'ing this matrix. @@ -639,7 +640,7 @@ // a 2x1 filter would obviously suffice, but given the total lack of specification // for xrender, I expect different xrender implementations to randomly diverge. // we also halve the image, and hope for the best (again, for lack of specs). - composer cc2 (cc.dstimg); + composer cc2 (img); XFixed kernel [] = { XDoubleToFixed (3), XDoubleToFixed (1), @@ -658,6 +659,8 @@ XRenderComposite (cc.dpy, PictOpSrc, cc2.src, None, cc2.dst, 0, 0, 0, 0, 0, 0, w * 2, h); + delete img; + return cc2; } @@ -691,7 +694,6 @@ // loop should not be needed for brightness, as only -1..1 makes sense //while (r | g | b | a) { - unsigned short xr, xg, xb, xa; XRenderColor mask_c; if (extract (0, 65535, r, g, b, a, mask_c.red, mask_c.green, mask_c.blue, mask_c.alpha)) @@ -733,7 +735,6 @@ //TODO: this operator does not yet implement some useful contrast while (r | g | b | a) { - unsigned short xr, xg, xb, xa; XRenderColor mask_c; if (extract (0, 65535, r, g, b, a, mask_c.red, mask_c.green, mask_c.blue, mask_c.alpha))