From: Sam S. <sd...@gn...> - 2009-08-30 02:37:13
|
> * Shawn Betts <fnorggf@tznvy.pbz> [2009-08-25 21:07:31 -0700]: > > A user reports that mplayer 1.3 crashes stumpwm. The backtrace > revealed a problem in decode-wm-size-hints. Here's the call, taken > from that backtrace, that breaks new-clx. > > (xlib::decode-wm-size-hints #(924 0 528 0 349 0 624 0 352 0 4 0 4 0 0 0 0 0)) > > It seems mplayer uses 0,0 for the max aspect ratio to mean that there > is no max aspect ratio. the culprit is the clx code present in all clx implementations I can see. IOW, this, I think, is a bug in mplayer: if they do not want to supply the aspect ratio, they should unset the 7th bit in the first vector element. I can, of course, add a workaround to this bug: --- clx.lisp.~1.42.~ 2008-12-08 00:01:13.000000000 -0500 +++ clx.lisp 2009-08-29 22:35:32.000000000 -0400 @@ -783,8 +783,12 @@ (setf (wm-size-hints-width-inc hints) (aref vector 9) (wm-size-hints-height-inc hints) (aref vector 10))) (when (logbitp 7 flags) - (setf (wm-size-hints-min-aspect hints) (/ (aref vector 11) (aref vector 12)) - (wm-size-hints-max-aspect hints) (/ (aref vector 13) (aref vector 14)))) + (let ((d (aref vector 12))) + (unless (zerop d) + (setf (wm-size-hints-min-aspect hints) (/ (aref vector 11) d)))) + (let ((d (aref vector 14))) + (unless (zerop d) + (setf (wm-size-hints-max-aspect hints) (/ (aref vector 13) d))))) (when (> (length vector) 15) ;; This test is for backwards compatibility since old Xlib programs ;; can set a size-hints structure that is too small. See ICCCM. however, this should be propagated to all the other CLX repositories... -- Sam Steingold (http://sds.podval.org/) on Ubuntu 9.04 (jaunty) http://www.PetitionOnline.com/tap12009/ http://honestreporting.com http://palestinefacts.org http://iris.org.il http://jihadwatch.org usually: can't pay ==> don't buy. software: can't buy ==> don't pay |