summaryrefslogtreecommitdiff
path: root/Build/source/libs/harfbuzz/harfbuzz-src
diff options
context:
space:
mode:
authorAkira Kakuto <kakuto@fuk.kindai.ac.jp>2017-10-24 22:11:52 +0000
committerAkira Kakuto <kakuto@fuk.kindai.ac.jp>2017-10-24 22:11:52 +0000
commit37168eec334581d5ef08daea94feafa0c1d904fd (patch)
tree87aed08220cb78210167f5d65b1dc4aeaa6f7c65 /Build/source/libs/harfbuzz/harfbuzz-src
parentb493e58b4908b064bfb15670052a5b7817f6a860 (diff)
harfbuzz 1.6.2. It does not yet compile since works for c++11 configuration are not done
git-svn-id: svn://tug.org/texlive/trunk@45593 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/harfbuzz/harfbuzz-src')
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog142
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/NEWS10
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/RELEASING.md69
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/configure.ac2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/harfbuzz.doap2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-icu.cc4
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsubgpos-private.hh12
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape.cc17
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-private.hh2
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-set-private.hh56
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-set.cc6
11 files changed, 250 insertions, 72 deletions
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog b/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog
index 83425f3cf49..7702acdf214 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/ChangeLog
@@ -1,3 +1,145 @@
+commit 30a591e3cef67818ef1ffec92c6a022b5a5f5e77
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Oct 23 14:28:35 2017 -0400
+
+ [set] Rewrite another way :P
+
+ src/hb-set-private.hh | 25 +++++++++++++------------
+ 1 file changed, 13 insertions(+), 12 deletions(-)
+
+commit 8170801d78a5bf9480d8c06ade849b30bc4e2956
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Oct 23 14:26:48 2017 -0400
+
+ [set] Fix crash
+
+ Ouch! That's what happens when one plays with increment/decrement
+ operators!
+
+ Fixes https://github.com/behdad/harfbuzz/issues/578
+
+ src/hb-set-private.hh | 10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+commit 61d1c60a1c555c58205964df4e449ee57125a739
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Oct 23 13:10:21 2017 -0400
+
+ [RELEASING] Format
+
+ RELEASING.md | 67
+ +++++++++++++++++++++++++++++++++++++++++++-----------------
+ 1 file changed, 48 insertions(+), 19 deletions(-)
+
+commit 6a2e1649debd992211bf96ef80d075d2d04a49ed
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Oct 23 13:01:34 2017 -0400
+
+ [doap] Switch to github issues
+
+ https://github.com/behdad/harfbuzz/pull/575#issuecomment-338514596
+
+ harfbuzz.doap | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 8a898c1929cf7ffc9b0011461b34281ecc98705c
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Oct 23 13:00:36 2017 -0400
+
+ [RELEASING] Minor
+
+ https://github.com/behdad/harfbuzz/pull/575
+
+ RELEASING.md | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 2ee710e02fad1a8a4b94589bb6f0b90e2aeb7121
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Oct 23 08:37:48 2017 -0400
+
+ Minor
+
+ src/hb-private.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit dd33e4e96b9345a6b1a9051a6aa4b7d114c74f1e
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Oct 23 08:36:40 2017 -0400
+
+ [set] Don't use major()
+
+ Fixes https://github.com/behdad/harfbuzz/issues/577
+
+ src/hb-set-private.hh | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+commit d0f0ff85b9fe959ef4b90f8daf58be73fca49dd0
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Oct 23 08:34:30 2017 -0400
+
+ [set] Don't use PAGE_SIZE
+
+ Fixes https://github.com/behdad/harfbuzz/issues/576
+
+ src/hb-set-private.hh | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+commit 57cf978fa314bd87405a2b133e58fcb116e574a6
+Merge: ce979454 6cc49762
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sun Oct 22 18:24:59 2017 -0400
+
+ Merge commit '6cc49762c4fdfd0e2770a84d1b1f055acf42376f'
+
+commit ce979454400c3870717ba40b1065a2f3727cfb93
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sun Oct 22 18:23:38 2017 -0400
+
+ [icu] Fix error check
+
+ src/hb-icu.cc | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 6cc49762c4fdfd0e2770a84d1b1f055acf42376f
+Merge: 8b9d9b71 19923279
+Author: ebraminio <ebrahim@gnu.org>
+Date: Mon Oct 23 01:48:22 2017 +0330
+
+ Merge pull request #575 from behdad/releasing-edit
+
+ Clarify the last step of release
+
+commit 19923279abd4c7615e8b02e05a02ba18f5c0b298
+Author: ebraminio <ebrahim@gnu.org>
+Date: Mon Oct 23 01:47:51 2017 +0330
+
+ Clarify the last step of release
+
+ RELEASING.md | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 8b9d9b71b04c9d5698ec146658b31381060c700d
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sun Oct 22 17:48:06 2017 -0400
+
+ Fix set initialization issues
+
+ src/hb-ot-layout-gsubgpos-private.hh | 12 ++++++------
+ src/hb-ot-shape.cc | 17 +++++++++--------
+ src/hb-set-private.hh | 9 ---------
+ src/hb-set.cc | 6 ++++--
+ 4 files changed, 19 insertions(+), 25 deletions(-)
+
+commit 0ca915efc3734111a57ff71f05d9cbf0e8af3de9
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Sun Oct 22 17:38:33 2017 -0400
+
+ 1.6.1
+
+ NEWS | 13 +++++++++++++
+ configure.ac | 2 +-
+ 2 files changed, 14 insertions(+), 1 deletion(-)
+
commit d59d5dc7d339deb45cc84cffd084b52752765a08
Merge: ced86da7 3ee15a60
Author: Behdad Esfahbod <behdad@behdad.org>
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/NEWS b/Build/source/libs/harfbuzz/harfbuzz-src/NEWS
index 19daabf7620..51cec0d376a 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/NEWS
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/NEWS
@@ -1,3 +1,13 @@
+Overview of changes leading to 1.6.2
+Monday, October 23nd, 2017
+====================================
+
+- Yesterday's release had a bad crasher; don't use it. That's what
+ happens when one works on Sunday...
+ https://github.com/behdad/harfbuzz/issues/578
+- Build fixes for FreeBSD and Chrome Android.
+
+
Overview of changes leading to 1.6.1
Sunday, October 22nd, 2017
====================================
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/RELEASING.md b/Build/source/libs/harfbuzz/harfbuzz-src/RELEASING.md
index 34f64988ffc..83302c7fbf6 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/RELEASING.md
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/RELEASING.md
@@ -1,37 +1,66 @@
HarfBuzz release walk-through checklist:
1. Open gitk and review changes since last release.
- * `git diff $(git describe | sed 's/-.*//').. src/*.h` prints all public API changes.
- Document them in NEWS, All API and API semantic changes should be clearly
- marked as API additions, API changes, or API deletions.
- If there's a backward-incompatible API change (including deletions for API used anywhere),
- that's a release blocker. Do NOT release. Document deprecations.
-2. Based on severity of changes, decide whether it's a minor or micro release number bump,
+ * `git diff $(git describe | sed 's/-.*//').. src/*.h` prints all public API
+ changes.
+
+ Document them in NEWS. All API and API semantic changes should be clearly
+ marked as API additions, API changes, or API deletions. Document
+ deprecations.
+
+ If there's a backward-incompatible API change (including deletions for API
+ used anywhere), that's a release blocker. Do NOT release.
+
+2. Based on severity of changes, decide whether it's a minor or micro release
+ number bump,
+
3. Make sure you have correct date and new version at the top of NEWS file,
+
4. Bump version in configure.ac line 3,
+
5. Do "make distcheck", if it passes, you get a tarball.
Otherwise, fix things and commit them separately before making release,
-6. "make release-files". Enter your GPG password again. This creates a sha256 hash and signs it.
-7. Now that you have a tarball built, commit NEWS and configure.ac changes. The commit message
- is simply the release number. Eg. "1.4.7"
-8. Tag the release and sign it: Eg. "git tag -s 1.4.7 -m 1.4.7". Enter your GPG password.
+
+6. "make release-files". Enter your GPG password. This creates a sha256 hash
+ and signs it.
+
+7. Now that you have release files built, commit NEWS and configure.ac changes.
+ The commit message is simply the release number. Eg. "1.4.7"
+
+8. Tag the release and sign it: Eg. "git tag -s 1.4.7 -m 1.4.7". Enter your
+ GPG password again.
+
9. Build win32 bundle.
- 1. Put contents of [this](https://drive.google.com/open?id=0B3_fQkxDZZXXbWltRGd5bjVrUDQ) on your `~/.local/i686-w64-mingw32`
- 2. Run `./MING32 --with-uniscribe` script (available below) to config harfbuzz with mingw
- 3. make
- 4. `./UPDATE.sh` (available below)
-10. Copy all artefacts to users.freedesktop.org and move them into `/srv/www.freedesktop.org/www/software/harfbuzz/release`
- There should be four files. Eg.:
+
+ a. Put contents of [this](https://drive.google.com/open?id=0B3_fQkxDZZXXbWltRGd5bjVrUDQ) on your `~/.local/i686-w64-mingw32`,
+
+ b. Run `./MING32 --with-uniscribe` script (available below) to configure harfbuzz with mingw in a subdirector (eg. winbuild/),
+
+ c. make
+
+ d. Back in the parent directory, run `./UPDATE.sh` (available below) to build win32 bundle.
+
+10. Copy all artefacts to users.freedesktop.org and move them into
+ `/srv/www.freedesktop.org/www/software/harfbuzz/release` There should be four
+ files. Eg.:
```
-rw-r--r-- 1 behdad eng 1592693 Jul 18 11:25 harfbuzz-1.4.7.tar.bz2
-rw-r--r-- 1 behdad eng 89 Jul 18 11:34 harfbuzz-1.4.7.tar.bz2.sha256
-rw-r--r-- 1 behdad eng 339 Jul 18 11:34 harfbuzz-1.4.7.tar.bz2.sha256.asc
-rw-r--r-- 1 behdad eng 2895619 Jul 18 11:34 harfbuzz-1.4.7-win32.zip
```
-11. While doing that, quickly double-check the size of the .tar.bz2 and .zip files against their previous releases to make sure nothing bad happened. They should be in the ballpark, perhaps slightly larger. Sometimes they do shrink, that's not by itself a stopper.
-12. Push the commit and tag out: "git push --follow-tags". Make sure it's pushed both to freedesktop repo and github.
-13. Upload artefacts and NEWS entry on the github release.
+
+11. While doing that, quickly double-check the size of the .tar.bz2 and .zip
+ files against their previous releases to make sure nothing bad happened.
+ They should be in the ballpark, perhaps slightly larger. Sometimes they
+ do shrink, that's not by itself a stopper.
+
+12. Push the commit and tag out: "git push --follow-tags". Make sure it's
+ pushed both to freedesktop repo and github.
+
+13. Go to GitHub release page [here](https://github.com/behdad/harfbuzz/releases),
+ edit the tag, upload artefacts and NEWS entry and save.
## MING32
@@ -57,7 +86,7 @@ export LDFLAGS=-L$HOME/.local/$target/lib
export PKG_CONFIG_LIBDIR=$HOME/.local/$target/lib/pkgconfig
export PATH=$HOME/.local/$target/bin:$PATH
-../configure --build=`~/script/config.guess` --host=$target --prefix=/home/behdad/.local/$target "$@"
+../configure --build=`../config.guess` --host=$target --prefix=$HOME/.local/$target "$@"
```
## UPDATE.sh
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac b/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac
index 1e00e3d5fce..41ace120726 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/configure.ac
@@ -1,6 +1,6 @@
AC_PREREQ([2.64])
AC_INIT([HarfBuzz],
- [1.6.1],
+ [1.6.2],
[https://github.com/behdad/harfbuzz/issues/new],
[harfbuzz],
[http://harfbuzz.org/])
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/harfbuzz.doap b/Build/source/libs/harfbuzz/harfbuzz-src/harfbuzz.doap
index d2896ebefa8..1e3e9abc484 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/harfbuzz.doap
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/harfbuzz.doap
@@ -13,7 +13,7 @@
<!--download-page
rdf:resource=""/-->
<bug-database
- rdf:resource="http://bugs.freedesktop.org/enter_bug.cgi?product=harfbuzz"/>
+ rdf:resource="https://github.com/behdad/harfbuzz/issues" />
<maintainer>
<foaf:Person>
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-icu.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-icu.cc
index a00803c98d0..01d15f48e8b 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-icu.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-icu.cc
@@ -332,13 +332,13 @@ hb_icu_unicode_decompose_compatibility (hb_unicode_funcs_t *ufuncs HB_UNUSED,
/* Normalise the codepoint using NFKD mode. */
icu_err = U_ZERO_ERROR;
len = unorm2_normalize (unorm2_getNFKDInstance (&icu_err), utf16, len, normalized, ARRAY_LENGTH (normalized), &icu_err);
- if (icu_err)
+ if (U_FAILURE (icu_err))
return 0;
/* Convert the decomposed form from UTF-16 to UTF-32. */
icu_err = U_ZERO_ERROR;
u_strToUTF32 ((UChar32*) decomposed, HB_UNICODE_MAX_DECOMPOSITION_LEN, &utf32_len, normalized, len, &icu_err);
- if (icu_err)
+ if (U_FAILURE (icu_err))
return 0;
return utf32_len;
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsubgpos-private.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsubgpos-private.hh
index 4abd4b715df..e695d788200 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsubgpos-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-layout-gsubgpos-private.hh
@@ -160,7 +160,7 @@ struct hb_collect_glyphs_context_t :
return HB_VOID;
/* Return if new lookup was recursed to before. */
- if (recursed_lookups.has (lookup_index))
+ if (recursed_lookups->has (lookup_index))
return HB_VOID;
hb_set_t *old_before = before;
@@ -176,7 +176,7 @@ struct hb_collect_glyphs_context_t :
input = old_input;
after = old_after;
- recursed_lookups.add (lookup_index);
+ recursed_lookups->add (lookup_index);
return HB_VOID;
}
@@ -187,7 +187,7 @@ struct hb_collect_glyphs_context_t :
hb_set_t *after;
hb_set_t *output;
recurse_func_t recurse_func;
- hb_set_t recursed_lookups;
+ hb_set_t *recursed_lookups;
unsigned int nesting_level_left;
unsigned int debug_depth;
@@ -203,15 +203,15 @@ struct hb_collect_glyphs_context_t :
after (glyphs_after ? glyphs_after : hb_set_get_empty ()),
output (glyphs_output ? glyphs_output : hb_set_get_empty ()),
recurse_func (nullptr),
- recursed_lookups (),
+ recursed_lookups (nullptr),
nesting_level_left (nesting_level_left_),
debug_depth (0)
{
- recursed_lookups.init ();
+ recursed_lookups = hb_set_create ();
}
~hb_collect_glyphs_context_t (void)
{
- recursed_lookups.fini ();
+ hb_set_destroy (recursed_lookups);
}
void set_recurse_func (recurse_func_t func) { recurse_func = func; }
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape.cc
index 9d1d6f74846..624132d8961 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shape.cc
@@ -939,18 +939,19 @@ hb_ot_shape_glyphs_closure (hb_font_t *font,
for (unsigned int i = 0; i < count; i++)
add_char (font, buffer->unicode, mirror, info[i].codepoint, glyphs);
- hb_set_t lookups;
- lookups.init ();
- hb_ot_shape_plan_collect_lookups (shape_plan, HB_OT_TAG_GSUB, &lookups);
+ hb_set_t *lookups = hb_set_create ();
+ hb_ot_shape_plan_collect_lookups (shape_plan, HB_OT_TAG_GSUB, lookups);
/* And find transitive closure. */
- hb_set_t copy;
- copy.init ();
+ hb_set_t *copy = hb_set_create ();
do {
- copy.set (glyphs);
- for (hb_codepoint_t lookup_index = -1; hb_set_next (&lookups, &lookup_index);)
+ copy->set (glyphs);
+ for (hb_codepoint_t lookup_index = -1; hb_set_next (lookups, &lookup_index);)
hb_ot_layout_lookup_substitute_closure (font->face, lookup_index, glyphs);
- } while (!copy.is_equal (glyphs));
+ } while (!copy->is_equal (glyphs));
+ hb_set_destroy (copy);
+
+ hb_set_destroy (lookups);
hb_shape_plan_destroy (shape_plan);
}
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-private.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-private.hh
index 3d617e2a595..b139ed67289 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-private.hh
@@ -340,7 +340,7 @@ _hb_popcount64 (uint64_t mask)
if (sizeof (long) >= sizeof (mask))
return __builtin_popcountl (mask);
#endif
- return _hb_popcount32 (mask) + _hb_popcount32 (mask >> 32);
+ return _hb_popcount32 (mask & 0xFFFFFFFF) + _hb_popcount32 (mask >> 32);
}
template <typename T> static inline unsigned int _hb_popcount (T mask);
template <> inline unsigned int _hb_popcount<uint32_t> (uint32_t mask) { return _hb_popcount32 (mask); }
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-set-private.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-set-private.hh
index 689766c130c..0454a1896e0 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-set-private.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-set-private.hh
@@ -156,6 +156,7 @@ struct hb_set_t
elt_t const &elt (hb_codepoint_t g) const { return v[(g & MASK) / ELT_BITS]; }
elt_t mask (hb_codepoint_t g) const { return elt_t (1) << (g & ELT_MASK); }
};
+ static_assert (page_t::PAGE_BITS == sizeof (page_t) * 8, "");
hb_object_header_t header;
ASSERT_POD ();
@@ -175,15 +176,6 @@ struct hb_set_t
return true;
}
- inline void init (void) {
- hb_object_init (this);
- page_map.init ();
- pages.init ();
- }
- inline void fini (void) {
- page_map.finish ();
- pages.finish ();
- }
inline void clear (void) {
if (unlikely (hb_object_is_inert (this)))
return;
@@ -282,11 +274,11 @@ struct hb_set_t
{
if (unlikely (in_error)) return;
- int na = pages.len;
- int nb = other->pages.len;
+ unsigned int na = pages.len;
+ unsigned int nb = other->pages.len;
unsigned int count = 0;
- int a = 0, b = 0;
+ unsigned int a = 0, b = 0;
for (; a < na && b < nb; )
{
if (page_map[a].major == other->page_map[b].major)
@@ -317,32 +309,35 @@ struct hb_set_t
return;
/* Process in-place backward. */
- a = na - 1, b = nb - 1;
- for (; a >= 0 && b >= 0; )
+ a = na;
+ b = nb;
+ for (; a && b; )
{
if (page_map[a].major == other->page_map[b].major)
{
- Op::process (page_at (--count).v, page_at (a).v, other->page_at (b).v);
a--;
b--;
+ Op::process (page_at (--count).v, page_at (a).v, other->page_at (b).v);
}
else if (page_map[a].major > other->page_map[b].major)
{
+ a--;
if (Op::passthru_left)
page_at (--count).v = page_at (a).v;
- a--;
}
else
{
+ b--;
if (Op::passthru_right)
page_at (--count).v = other->page_at (b).v;
- b--;
}
}
- while (a >= 0)
- page_at (--count).v = page_at (--a).v;
- while (b >= 0)
- page_at (--count).v = other->page_at (--b).v;
+ if (Op::passthru_left)
+ while (a)
+ page_at (--count).v = page_at (--a).v;
+ if (Op::passthru_right)
+ while (b)
+ page_at (--count).v = other->page_at (--b).v;
assert (!count);
}
@@ -369,14 +364,14 @@ struct hb_set_t
return *codepoint != INVALID;
}
- page_map_t map = {major (*codepoint), 0};
+ page_map_t map = {get_major (*codepoint), 0};
unsigned int i;
page_map.bfind (&map, &i);
if (i < page_map.len)
{
if (pages[page_map[i].index].next (codepoint))
{
- *codepoint += page_map[i].major * PAGE_SIZE;
+ *codepoint += page_map[i].major * page_t::PAGE_BITS;
return true;
}
i++;
@@ -386,7 +381,7 @@ struct hb_set_t
hb_codepoint_t m = pages[page_map[i].index].get_min ();
if (m != INVALID)
{
- *codepoint = page_map[i].major * PAGE_SIZE + m;
+ *codepoint = page_map[i].major * page_t::PAGE_BITS + m;
return true;
}
}
@@ -424,7 +419,7 @@ struct hb_set_t
unsigned int count = pages.len;
for (unsigned int i = 0; i < count; i++)
if (!page_at (i).is_empty ())
- return page_map[i].major * PAGE_SIZE + page_at (i).get_min ();
+ return page_map[i].major * page_t::PAGE_BITS + page_at (i).get_min ();
return INVALID;
}
inline hb_codepoint_t get_max (void) const
@@ -432,16 +427,15 @@ struct hb_set_t
unsigned int count = pages.len;
for (int i = count - 1; i >= 0; i++)
if (!page_at (i).is_empty ())
- return page_map[i].major * PAGE_SIZE + page_at (i).get_max ();
+ return page_map[i].major * page_t::PAGE_BITS + page_at (i).get_max ();
return INVALID;
}
- static const unsigned int PAGE_SIZE = sizeof (page_t) * 8;
static const hb_codepoint_t INVALID = HB_SET_VALUE_INVALID;
page_t *page_for_insert (hb_codepoint_t g)
{
- page_map_t map = {major (g), pages.len};
+ page_map_t map = {get_major (g), pages.len};
unsigned int i;
if (!page_map.bfind (&map, &i))
{
@@ -456,7 +450,7 @@ struct hb_set_t
}
page_t *page_for (hb_codepoint_t g)
{
- page_map_t key = {major (g)};
+ page_map_t key = {get_major (g)};
const page_map_t *found = page_map.bsearch (&key);
if (found)
return &pages[found->index];
@@ -464,7 +458,7 @@ struct hb_set_t
}
const page_t *page_for (hb_codepoint_t g) const
{
- page_map_t key = {major (g)};
+ page_map_t key = {get_major (g)};
const page_map_t *found = page_map.bsearch (&key);
if (found)
return &pages[found->index];
@@ -472,7 +466,7 @@ struct hb_set_t
}
page_t &page_at (unsigned int i) { return pages[page_map[i].index]; }
const page_t &page_at (unsigned int i) const { return pages[page_map[i].index]; }
- unsigned int major (hb_codepoint_t g) const { return g / PAGE_SIZE; }
+ unsigned int get_major (hb_codepoint_t g) const { return g / page_t::PAGE_BITS; }
};
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-set.cc b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-set.cc
index d33e525de4a..e2c788225d5 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-set.cc
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-set.cc
@@ -45,7 +45,8 @@ hb_set_create (void)
if (!(set = hb_object_create<hb_set_t> ()))
return hb_set_get_empty ();
- set->clear ();
+ set->page_map.init ();
+ set->pages.init ();
return set;
}
@@ -95,7 +96,8 @@ hb_set_destroy (hb_set_t *set)
{
if (!hb_object_destroy (set)) return;
- set->fini ();
+ set->page_map.finish ();
+ set->pages.finish ();
free (set);
}