Waldek Hebisch wrote:
Frank Heckenbach wrote:
You once suggested to rewrite packed array support significantly, also for other reasons. What are your current plans? If you're not planning to do it now, perhaps we should implement a temporary solution, even if less efficient, to fix the bug.
I actually plan to do limited rewrite (use byte access in inline code and pass all sizes bigger then 18 bits to the runtime support). I would like to this simultaneusly with changes to set handling (to minimize number of releases in which we break binary compatiblity).
However ATM there are things that I began (argument passing cleanup (rewrite), 4.1 port, exception support and more) and I prefer to finish them before starting something new.
I thought about doing a simpler fix, but I am affraid that such a fix requires work comparable with (limited) rewrite.
Couldn't we just, instead of the current two half-word accesses, do two full-word or two double-word accesses (more precisely, two accesses of either the largest integer type available or the next smaller one) when the field size requires it? I must admit I haven't looked closer at this code for quite a while, so I may be missing something important. And again, that's for a quick fix only -- of course, the code will be quite inefficient in some cases, but still better than buggy. But if it works, it should require small changes only.
Frank