Bug 285

Summary: Xi: XSelectExtensionEvent does not work on 64-Bit machines
Product: xorg Reporter: Andreas Luik <luik>
Component: Lib/XiAssignee: Egbert Eich <eich>
Status: RESOLVED FIXED QA Contact:
Severity: critical    
Priority: high CC: mharris
Version: unspecified   
Hardware: Alpha   
OS: All   
Whiteboard:
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 213    
Attachments:
Description Flags
fix for XSelectExtensionEvent() on 64-Bit machines none

Description Andreas Luik 2004-03-08 02:42:36 UTC
XEventClass is typedef'd as an "unsigned long", therefore, on an
Alpha, this is a 64-bit long cardinal.  On the other hand, the X11
protocol uses a CARD32 to represent the event class.  Therefore,
library calls must properly convert from "unsigned long" to "CARD32".
XSelect.c
This is not properly done in lib/Xi/XSelect.c, where `Data' is used to
copy from client data to the X request.  This is incorrect.  `Data32'
must be used instead, as it is already done in all other places,
e.g. in lib/Xi/XChgProp.c
Comment 1 Andreas Luik 2004-03-08 02:45:01 UTC
Created attachment 130 [details] [review]
fix for XSelectExtensionEvent() on 64-Bit machines
Comment 2 Egbert Eich 2004-03-08 09:13:01 UTC
Paul and Alan say that this is OK as both HP and SUN are already using this in
their trees. I'll put it into the release tree.
Comment 3 Egbert Eich 2004-03-11 08:01:38 UTC
Committed to the RELEASE-1 branch.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.