! Please note that this is a snapshot of our old Bugzilla server, which is read only since May 29, 2020. Please go to gitlab.xfce.org for our new server !
Broken behaviour since "Use 32 unsigned integer for opacity"
Status:
RESOLVED: FIXED

Comments

Description Simon P 2015-01-10 12:31:08 CET
(debian/testing | intel 32bit | xfwm4 4.11.2git)

After updating my build from git master, I found several broken behaviours (although wm is not crashing). I did a git bisect, and found the guilty commit to be "Use 32 unsigned integer for opacity" http://git.xfce.org/xfce/xfwm4/commit/?id=b3b014a3ae58efe9b4eecdc9bd75316eb552e7c1

After some experimentation I found this part of the commit to be causing the problem:
(hints.c line 245)
-    *value = *((long *) data) & 0xffffffff;
+    *value = *((long *) data) & ((1L << real_format) - 1);

That mask on the right evaluates correctly only when real_format < 32. Using ((1LL << real_format) - 1) ensures enough width, and then xfwm4 runs okay.

The similar mask on line 510 hasn't caused problems, but may need attention.
Comment 1 Olivier Fourdan editbugs 2015-01-10 12:42:15 CET
Fixed with commit ffc10a0, thanks!

Bug #11440

Reported by:
Simon P
Reported on: 2015-01-10
Last modified on: 2015-01-10

People

Assignee:
Olivier Fourdan
CC List:
0 users

Version

Version:
unspecified

Attachments

Additional information