>>>>> On Tue, 22 Nov 2011 03:52:30 -0500, Eli Zaretskii <address@hidden> said:
> Are you saying that this loop was implemented under the assumption
> that there's no overlap in the destinations?
Of course, I don't know the intention of the original author, but
overlaps mean not only buggy behavior, but also redundant graphics
operations. That's why I said "Such truncation can also avoid
unnecessary copy in the actual graphics operation." in my first post.
> Anyway, if the problem is that assign_row leaves the `from' row with
> bogus glyph information (and I know it does, as I recently fixed an
> assertion violation caused by that), then isn't the problem in
> assign_row, to be fixed there? Assignment as a concept does not
> imply a change to the source in any way, so having a function called
> assign_row that actually destroys the source means people will (and
> do) introduce bugs when they use their mental model of assignment.
> Alternatively, maybe we should assign only those rows that have
> their enabled_p flag set? Why would we even want to copy disabled
> glyph rows?
This alternative is actually what I tried first. But I thought
truncation could also avoid redundant graphics operations as explained
above. Actually, I thought that if I posted this alternative, then I
would receive the other-way-round comment, i.e., why not truncate
overlaps?
> Your changes are not here, but elsewhere, which makes me bother if
> we are not dancing around the bug and sweeping the root cause under
> a thick carpet.
> Also, what about the unconditional setting of to->enabled_p to 1 in
> the above loop, regardless of what was that flag in `from'? Does it
> look right to you?
In the current code, to->enabled_p seems already be set to 1
unconditionally. Maybe I don't understand the question.
YAMAMOTO Mitsuharu
address@hidden