Bug 1344578 - Update harfbuzz to version 1.4.5. r=jfkthame

This commit is contained in:
Ryan VanderMeulen 2017-03-15 17:12:44 -04:00
Родитель 45cba5a03b
Коммит bf71ad29fe
10 изменённых файлов: 49 добавлений и 10 удалений

Просмотреть файл

@ -1,3 +1,19 @@
Overview of changes leading to 1.4.5
Friday, March 10, 2017
====================================
- Revert "Fix Context lookup application when moving back after a glyph..."
This introduced memory access problems. To be fixed properly soon.
Overview of changes leading to 1.4.4
Sunday, March 5, 2017
====================================
- Fix Context lookup application when moving back after a glyph deletion.
- Fix buffer-overrun in Bengali.
Overview of changes leading to 1.4.3
Saturday, February 25, 2017
====================================

Просмотреть файл

@ -1,9 +1,9 @@
gfx/harfbuzz status as of 2017-02-25:
gfx/harfbuzz status as of 2017-03-10:
This directory contains the harfbuzz source from the 'master' branch of
https://github.com/behdad/harfbuzz.
Current version: 1.4.3
Current version: 1.4.5
UPDATING:

Просмотреть файл

@ -1,6 +1,6 @@
AC_PREREQ([2.64])
AC_INIT([HarfBuzz],
[1.4.3],
[1.4.5],
[https://github.com/behdad/harfbuzz/issues/new],
[harfbuzz],
[http://harfbuzz.org/])

Просмотреть файл

@ -5,7 +5,7 @@ includedir=/usr/local/include
Name: harfbuzz
Description: HarfBuzz text shaping library ICU integration
Version: 1.4.3
Version: 1.4.5
Requires: harfbuzz
Requires.private: icu-uc

Просмотреть файл

@ -5,7 +5,7 @@ includedir=/usr/local/include
Name: harfbuzz
Description: HarfBuzz text shaping library
Version: 1.4.3
Version: 1.4.5
Libs: -L${libdir} -lharfbuzz
Libs.private:

Просмотреть файл

@ -311,6 +311,8 @@ hb_buffer_serialize_glyphs (hb_buffer_t *buffer,
if (!buf_consumed)
buf_consumed = &sconsumed;
*buf_consumed = 0;
if (buf_size)
*buf = '\0';
assert ((!buffer->len && buffer->content_type == HB_BUFFER_CONTENT_TYPE_INVALID) ||
buffer->content_type == HB_BUFFER_CONTENT_TYPE_GLYPHS);

Просмотреть файл

@ -996,7 +996,29 @@ static inline bool apply_lookup (hb_apply_context_t *c,
if (!delta)
continue;
/* Recursed lookup changed buffer len. Adjust. */
/* Recursed lookup changed buffer len. Adjust.
*
* TODO:
*
* Right now, if buffer length increased by n, we assume n new glyphs
* were added right after the current position, and if buffer length
* was decreased by n, we assume n match positions after the current
* one where removed. The former (buffer length increased) case is
* fine, but the decrease case can be improved in at least two ways,
* both of which are significant:
*
* - If recursed-to lookup is MultipleSubst and buffer length
* decreased, then it's current match position that was deleted,
* NOT the one after it.
*
* - If buffer length was decreased by n, it does not necessarily
* mean that n match positions where removed, as there might
* have been marks and default-ignorables in the sequence. We
* should instead drop match positions between current-position
* and current-position + n instead.
*
* It should be possible to construct tests for both of these cases.
*/
end += delta;
if (end <= int (match_positions[idx]))

Просмотреть файл

@ -1497,7 +1497,7 @@ final_reordering_syllable (const hb_ot_shape_plan_t *plan,
if (reph_pos == REPH_POS_AFTER_SUB)
{
new_reph_pos = base;
while (new_reph_pos < end &&
while (new_reph_pos + 1 < end &&
!( FLAG_SAFE (info[new_reph_pos + 1].indic_position()) & (FLAG (POS_POST_C) | FLAG (POS_AFTER_POST) | FLAG (POS_SMVD))))
new_reph_pos++;
if (new_reph_pos < end)

Просмотреть файл

@ -378,7 +378,6 @@ hb_ot_shape_setup_masks_fraction (hb_ot_shape_context_t *c)
post_mask = c->plan->numr_mask | c->plan->frac_mask;
}
/* TODO look in pre/post context text also. */
unsigned int count = buffer->len;
hb_glyph_info_t *info = buffer->info;
for (unsigned int i = 0; i < count; i++)

Просмотреть файл

@ -38,9 +38,9 @@ HB_BEGIN_DECLS
#define HB_VERSION_MAJOR 1
#define HB_VERSION_MINOR 4
#define HB_VERSION_MICRO 3
#define HB_VERSION_MICRO 5
#define HB_VERSION_STRING "1.4.3"
#define HB_VERSION_STRING "1.4.5"
#define HB_VERSION_ATLEAST(major,minor,micro) \
((major)*10000+(minor)*100+(micro) <= \