| Index: third_party/harfbuzz-ng/src/hb-buffer.cc
 | 
| diff --git a/third_party/harfbuzz-ng/src/hb-buffer.cc b/third_party/harfbuzz-ng/src/hb-buffer.cc
 | 
| index 74ae273eeca79803487bf5d580eea92ea12986cb..0500aa23ced68bcaafad69de0dc1576481443cd1 100644
 | 
| --- a/third_party/harfbuzz-ng/src/hb-buffer.cc
 | 
| +++ b/third_party/harfbuzz-ng/src/hb-buffer.cc
 | 
| @@ -1328,15 +1328,15 @@ hb_buffer_guess_segment_properties (hb_buffer_t *buffer)
 | 
|    buffer->guess_segment_properties ();
 | 
|  }
 | 
|  
 | 
| -template <bool validate, typename T>
 | 
| +template <typename utf_t>
 | 
|  static inline void
 | 
|  hb_buffer_add_utf (hb_buffer_t  *buffer,
 | 
| -		   const T      *text,
 | 
| +		   const typename utf_t::codepoint_t *text,
 | 
|  		   int           text_length,
 | 
|  		   unsigned int  item_offset,
 | 
|  		   int           item_length)
 | 
|  {
 | 
| -  typedef hb_utf_t<T, true> utf_t;
 | 
| +  typedef typename utf_t::codepoint_t T;
 | 
|    const hb_codepoint_t replacement = buffer->replacement;
 | 
|  
 | 
|    assert (buffer->content_type == HB_BUFFER_CONTENT_TYPE_UNICODE ||
 | 
| @@ -1400,7 +1400,7 @@ hb_buffer_add_utf (hb_buffer_t  *buffer,
 | 
|  /**
 | 
|   * hb_buffer_add_utf8:
 | 
|   * @buffer: a buffer.
 | 
| - * @text: (array length=text_length):
 | 
| + * @text: (array length=text_length) (element-type uint8_t):
 | 
|   * @text_length: 
 | 
|   * @item_offset: 
 | 
|   * @item_length: 
 | 
| @@ -1416,7 +1416,7 @@ hb_buffer_add_utf8 (hb_buffer_t  *buffer,
 | 
|  		    unsigned int  item_offset,
 | 
|  		    int           item_length)
 | 
|  {
 | 
| -  hb_buffer_add_utf<true> (buffer, (const uint8_t *) text, text_length, item_offset, item_length);
 | 
| +  hb_buffer_add_utf<hb_utf8_t> (buffer, (const uint8_t *) text, text_length, item_offset, item_length);
 | 
|  }
 | 
|  
 | 
|  /**
 | 
| @@ -1438,7 +1438,7 @@ hb_buffer_add_utf16 (hb_buffer_t    *buffer,
 | 
|  		     unsigned int    item_offset,
 | 
|  		     int             item_length)
 | 
|  {
 | 
| -  hb_buffer_add_utf<true> (buffer, text, text_length, item_offset, item_length);
 | 
| +  hb_buffer_add_utf<hb_utf16_t> (buffer, text, text_length, item_offset, item_length);
 | 
|  }
 | 
|  
 | 
|  /**
 | 
| @@ -1460,7 +1460,29 @@ hb_buffer_add_utf32 (hb_buffer_t    *buffer,
 | 
|  		     unsigned int    item_offset,
 | 
|  		     int             item_length)
 | 
|  {
 | 
| -  hb_buffer_add_utf<true> (buffer, text, text_length, item_offset, item_length);
 | 
| +  hb_buffer_add_utf<hb_utf32_t<> > (buffer, text, text_length, item_offset, item_length);
 | 
| +}
 | 
| +
 | 
| +/**
 | 
| + * hb_buffer_add_latin1:
 | 
| + * @buffer: a buffer.
 | 
| + * @text: (array length=text_length) (element-type uint8_t):
 | 
| + * @text_length: 
 | 
| + * @item_offset: 
 | 
| + * @item_length: 
 | 
| + *
 | 
| + * 
 | 
| + *
 | 
| + * Since: 1.0
 | 
| + **/
 | 
| +void
 | 
| +hb_buffer_add_latin1 (hb_buffer_t   *buffer,
 | 
| +		      const uint8_t *text,
 | 
| +		      int            text_length,
 | 
| +		      unsigned int   item_offset,
 | 
| +		      int            item_length)
 | 
| +{
 | 
| +  hb_buffer_add_utf<hb_latin1_t> (buffer, text, text_length, item_offset, item_length);
 | 
|  }
 | 
|  
 | 
|  /**
 | 
| @@ -1482,7 +1504,7 @@ hb_buffer_add_codepoints (hb_buffer_t          *buffer,
 | 
|  			  unsigned int          item_offset,
 | 
|  			  int                   item_length)
 | 
|  {
 | 
| -  hb_buffer_add_utf<false> (buffer, text, text_length, item_offset, item_length);
 | 
| +  hb_buffer_add_utf<hb_utf32_t<false> > (buffer, text, text_length, item_offset, item_length);
 | 
|  }
 | 
|  
 | 
|  
 | 
| 
 |