I *think* thins might be happening simply becasue in icu-le-hb the buffer is 
created in the LayoutEngine constructor and destroyed in destructor.  At the 
end of each layoutChars call, the buffer size is set to 0 by calling 
hb_buffer_set_length(fHbBuffer, 0). But between consecutive layoutChars calls 
the same buffer is used. My assumption is (I could be wrong though) that in 
some cases the buffer's content_type will be HB_BUFFER_CONTENT_TYPE_GLYPHS from 
the previous call. This then causes assert to fail when hb_buffer_add_utf16 is 
called before the next shaping call.

But so far I did not observe any other ill effects. As I said, the shaping 
process seems to work fine.

> -----Original Message----- 
> From: "Dejan Kovacevic" <[email protected]> 
> To: "Behdad Esfahbod" <[email protected]>, [email protected] 
> Date: 11/15/13 12:28 
> Subject: Re: [HarfBuzz] assert in hb_buffer_add_utf 
> 
> Yes, it appears icu-le-hb hits it. Other than that, seems to work fine (but 
> will be doing some more testing later)...
> 
> > -----Original Message----- 
> > From: "Behdad Esfahbod" <[email protected]> 
> > To: "Dejan Kovacevic" <[email protected]>, [email protected] 
> > Date: 11/15/13 12:18 
> > Subject: Re: [HarfBuzz] assert in hb_buffer_add_utf 
> > 
> > On 13-11-15 12:13 PM, Dejan Kovacevic wrote:
> > > The hb_buffer_add_utf function starts with the following assert 
> > > (hb-buffer.cc: line 1289):
> > > 
> > >   assert (buffer->content_type == HB_BUFFER_CONTENT_TYPE_UNICODE ||
> > >       (!buffer->len && buffer->content_type == 
> > > HB_BUFFER_CONTENT_TYPE_INVALID));
> > > 
> > > I have observed that buffer->content_type can also be 
> > > HB_BUFFER_CONTENT_TYPE_GLYPHS, in which case the assert fails. Not sure 
> > > if this is by design.
> > 
> > That's exactly why the assert is there.  If you use the buffer correctly the
> > assert will never be hit.  Do you have a use case that is asserting 
> > currently?
> > 
> > -- 
> > behdad
> > http://behdad.org/
> 
> 
> _______________________________________________
> HarfBuzz mailing list
> [email protected]
> http://lists.freedesktop.org/mailman/listinfo/harfbuzz


_______________________________________________
HarfBuzz mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/harfbuzz

Reply via email to