| Index: third_party/harfbuzz-ng/src/hb-private.hh
|
| diff --git a/third_party/harfbuzz-ng/src/hb-private.hh b/third_party/harfbuzz-ng/src/hb-private.hh
|
| index 8121640f01c2beb65ef249d6dedaf73c6fe88176..4b72260ed5cb4a510dde9320e25a4ed237326487 100644
|
| --- a/third_party/harfbuzz-ng/src/hb-private.hh
|
| +++ b/third_party/harfbuzz-ng/src/hb-private.hh
|
| @@ -79,6 +79,9 @@ static inline Type MIN (const Type &a, const Type &b) { return a < b ? a : b; }
|
| template <typename Type>
|
| static inline Type MAX (const Type &a, const Type &b) { return a > b ? a : b; }
|
|
|
| +static inline unsigned int DIV_CEIL (const unsigned int a, unsigned int b)
|
| +{ return (a + (b - 1)) / b; }
|
| +
|
|
|
| #undef ARRAY_LENGTH
|
| template <typename Type, unsigned int n>
|
| @@ -321,14 +324,22 @@ struct hb_prealloced_array_t
|
| inline void pop (void)
|
| {
|
| len--;
|
| - /* TODO: shrink array if needed */
|
| + }
|
| +
|
| + inline void remove (unsigned int i)
|
| + {
|
| + if (unlikely (i >= len))
|
| + return;
|
| + memmove (static_cast<void *> (&array[i]),
|
| + static_cast<void *> (&array[i + 1]),
|
| + (len - i - 1) * sizeof (Type));
|
| + len--;
|
| }
|
|
|
| inline void shrink (unsigned int l)
|
| {
|
| if (l < len)
|
| len = l;
|
| - /* TODO: shrink array if needed */
|
| }
|
|
|
| template <typename T>
|
| @@ -376,7 +387,7 @@ struct hb_prealloced_array_t
|
| }
|
| };
|
|
|
| -#define HB_AUTO_ARRAY_PREALLOCED 64
|
| +#define HB_AUTO_ARRAY_PREALLOCED 16
|
| template <typename Type>
|
| struct hb_auto_array_t : hb_prealloced_array_t <Type, HB_AUTO_ARRAY_PREALLOCED>
|
| {
|
| @@ -595,7 +606,7 @@ _hb_debug_msg_va (const char *what,
|
| #define ULBAR "\342\225\257" /* U+256F BOX DRAWINGS LIGHT ARC UP AND LEFT */
|
| #define LBAR "\342\225\264" /* U+2574 BOX DRAWINGS LIGHT LEFT */
|
| static const char bars[] = VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR;
|
| - fprintf (stderr, "%2d %s" VRBAR "%s",
|
| + fprintf (stderr, "%2u %s" VRBAR "%s",
|
| level,
|
| bars + sizeof (bars) - 1 - MIN ((unsigned int) sizeof (bars), (unsigned int) (sizeof (VBAR) - 1) * level),
|
| level_dir ? (level_dir > 0 ? DLBAR : ULBAR) : LBAR);
|
|
|