Commit eab3ebc6 changed all occurrences of unsigned long to uint64_t, which does not work when it is used in callback functions whose signatures are defined with unsigned long by libXt. On 64-bit machines, unsigned long and uint64_t are the same type, but on 32-bit machines, long has only 32 bits. This makes the callback function pointer incompatible with the callback function parameter type.
The callback functions in question are the following (from X11/Intrinsic.h):
typedef Boolean (XtConvertSelectionProc)(
Widget / widget /,
Atom / selection /,
Atom / target /,
Atom / type_return /,
XtPointer / value_return /,
unsigned long / length_return /,
int / format_return /
);
typedef Boolean (XtConvertSelectionProc)(
Widget / widget /,
Atom / selection /,
Atom / target /,
Atom / type_return /,
XtPointer / value_return /,
unsigned long / length_return /,
int / format_return /
);
Both functions use pointers to unsigned long as output parameters for data length, so the functions implementing these callbacks have to use unsigned long, too.
Commit eab3ebc6 changed all occurrences of unsigned long to uint64_t, which does not work when it is used in callback functions whose signatures are defined with unsigned long by libXt. On 64-bit machines, unsigned long and uint64_t are the same type, but on 32-bit machines, long has only 32 bits. This makes the callback function pointer incompatible with the callback function parameter type.
The callback functions in question are the following (from X11/Intrinsic.h):
typedef Boolean (XtConvertSelectionProc)( Widget / widget /, Atom / selection /, Atom / target /, Atom / type_return /, XtPointer / value_return /, unsigned long / length_return /, int / format_return / ); typedef Boolean (XtConvertSelectionProc)( Widget / widget /, Atom / selection /, Atom / target /, Atom / type_return /, XtPointer / value_return /, unsigned long / length_return /, int / format_return / );
Both functions use pointers to unsigned long as output parameters for data length, so the functions implementing these callbacks have to use unsigned long, too.