Subject: bug#18586: 24.4.50; "Not an in-range integer, float, or cons of integers" from x-focus-frame

From: Jan Djärv <[email-masked]>
Date: Thu, 2 Oct 2014 07:50:09 +0200

Hello.

2 okt 2014 kl. 06:54 skrev Paul Eggert <[email-masked]>:

>> I guess the apropriate thing to do is to use cons_to_signed if the value fits in 32 signed bits, and cons_to_unsigned if it fits in 32 unsigned bits.
> 
> There's already a function cons_to_x_long that does exactly that, and I'll look into a patch to use it.  However, I suspect another bug is involved, as the reported value (0x385f739b4) does not fit in 32-bit unsigned long either, and I have a sneaking suspicion that it's garbage of some sort, i.e., that there's another bug at work here too.

If it does not fit in 32 bit unsigned, then it is indeed garbage.  Unfortunately Time is unsigned long which might be 64 bit, but on the X protocol level it is 32 bit.  So garbage may happen.
A watchpoint in gdb on dpyinfo->last_user_time by anyone who can reproduce this would find it.

	Jan D.