Hi,

On Tue, 2012-08-28 at 22:21 +0200, Petr Koupý wrote:
> If there is no crash, then something is probably (infinitely) looping.
> While it could be anything, I would like to mention one particular
> case which I encountered and debugged few times during the development.
> Since coordinates are represented as unsigned integer, there could be
> underflow error causing some for loop to traverse whole integer range.
> However, when such thing happened, GUI did not freeze completely, it
> was just extremely slow but still alive (e.g. cursor movement was
> sluggish but visible).
I've actually changed (some) of the coordinates to use signed integers
of native size in mainline,1631 (those are especially handy when
representing differences between coordinates). I did not try running
HelenOS on ia32 though. Now I see that the problem may be caused by the
32 signed integer overflowing (as the coordinate origin is set to
UINT32_MAX / 2):
http://trac.helenos.org/browser/mainline/uspace/srv/hid/compositor/compositor.c#L1708

It should probably be sufficient to change this to UINT32_MAX / 4 this
time (and when we use signed integers at all necessary places, we could
change the coordinate origin to zero). Let me check if I can reproduce
the problem on ia32 and whether this change fixes it.

Martin Sucha



_______________________________________________
HelenOS-devel mailing list
[email protected]
http://lists.modry.cz/cgi-bin/listinfo/helenos-devel

Reply via email to