DO NOT REPLY TO THIS MESSAGE.  INSTEAD, POST ANY RESPONSES TO THE LINK BELOW.

[STR New]

Link: http://www.fltk.org/str.php?L2637
Version: 1.3.0


Sorry, it took a little longer ... but now I can confirm everything Csaba
found out. Many thanks for reporting the bug and for your thorough
testing. I get the same valgrind errors when running on 64-bit Linux
except the screen_init() error (I have currently only one monitor
configured).

I do also think what we see here is a questionable and maybe even
counter-productive attempt to optimize something. I know for sure that
reads and writes to not properly aligned data in IA64 architecture (Intel
Itanium) are very expensive WRT performance, because this will be trapped,
and then "repaired" by a system handler. This is true for at least one OS
I'm working with on IA64 (OpenVMS), but I assume that it doesn't depend on
the OS, since it's a hardware (processor) property. Is the data here
aligned for 64-bit access? I don't know, but maybe not.

The other important point Csaba made is that the destination array's
bounds will be overwritten as well, although this is not found by Valgrind
in our tests. On a first look it seems however, that the destination buffer
might be allocated with rounding to the correct sizes, but this needs to be
checked further.

It's too late here now to do more testing, but I'll take another look ASAP
this weekend. Maybe removing the U64 part could be a *simple* solution, but
then we must make sure that U32 is always defined. Looking at configure.in
this seems to be so, but I'm not sure about that.


Link: http://www.fltk.org/str.php?L2637
Version: 1.3.0

_______________________________________________
fltk-bugs mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-bugs

Reply via email to