Re: UT_contextGlyph bugs

From: Tomas Frydrych (tomas@frydrych.uklinux.net)
Date: Fri Nov 29 2002 - 11:20:44 EST

  • Next message: Tomas Frydrych: "Re: Revision Tracking"

    Hi Mike,

    that's my mess.

    > In the UT_contextGlyph constructor there's a call
    >
    > memcpy(&s_table[HEBREW_START], &s_table[HEBREW_END + 1] ...
    >
    > As all (should) know, overlapping memcpy is undefined. If the areas
    > overlap one should use memmove, but since there are quite a few
    > platforms involved I didn't want to break anything by fixing this.

    The gap between the overlap is 120 bytes -- I did not think there was
    a processor around that would move data around in such big chunks
    as to have a problem with this.

    > Another thing is UT_contextGlyph::renderString. 28 lines into this
    > function there's
    >
    > for(; j < CONTEXT_BUFF_SIZE; j++)
    > next_tmp[j] = *(next + (j + i + 1 - len));
    >
    > I really don't know what this code does, and I'm not sure I want to
    > know. What I do know is that the expression (next + (j + i + 1 - len))
    > evaluated to an address that is not initialized (called from
    > fp_TextRun::_refreshDrawBuffer). Someone knowing this code might want
    > to have a look at that too.

    Just having a quick look at the code, it seems to me that the
    indexing is correct; perphaps the problem is in
    fp_TextRun::_refreshDrawBuffer(). Unfortunately, I am to busy at
    the moment to be able to look into this.

    Tomas



    This archive was generated by hypermail 2.1.4 : Fri Nov 29 2002 - 11:23:35 EST