Commit b071f305 authored by Dominik Röttsches's avatar Dominik Röttsches Committed by Commit Bot

Patch hb_set implementation back to pre 1.6.1 implementation again

Perf bisects indicate that the hb_set changes may be the reason for seing
performance regressions in issues 781794 and 782220. The previous CL for
patching the set implementation back [1] shows that this makes the performance
graphs recover. In [2] we reduced the number of calls to
HasSpaceInLigaturesOrKerning in an attempt to see whether this can address the
performance regressions. However, the graphs in [3] show that even after
Chromium revision 522394 (which is the revision for [3]) the graphs are not
recovering.

[1] https://chromium-review.googlesource.com/c/chromium/src/+/804374
[2] https://chromium-review.googlesource.com/c/chromium/src/+/809106
[3] https://chromeperf.appspot.com/group_report?bug_id=781794

Bug: 782220
Change-Id: Ib4708dbba70a36d1f7659ab00dfe8222e8623d8b
Tbr: eae, kojii, behdad
Reviewed-on: https://chromium-review.googlesource.com/816795Reviewed-by: default avatarDominik Röttsches <drott@chromium.org>
Reviewed-by: default avatarKoji Ishii <kojii@chromium.org>
Commit-Queue: Dominik Röttsches <drott@chromium.org>
Cr-Commit-Position: refs/heads/master@{#522757}
parent 2291dbcc
...@@ -19,4 +19,7 @@ for removed or added files and update our build recipes in BUILD.gn and ...@@ -19,4 +19,7 @@ for removed or added files and update our build recipes in BUILD.gn and
harfbuzz.gyp accordingly, update the NEWS file from HarfBuzz' release notes, and harfbuzz.gyp accordingly, update the NEWS file from HarfBuzz' release notes, and
bump the version numbers in README.chromium. bump the version numbers in README.chromium.
Locally patch hb-private.hh to silence unusued variable warnings in MSVC. Locally patch hb-private.hh to silence unusued variable warnings in MSVC.
\ No newline at end of file
Locally patching hb_set implementation back to the pre 1.6.1 implemention as we
observe a set of timeToFirst*Paint performance regressions in issue 781794.
...@@ -45,8 +45,7 @@ hb_set_create (void) ...@@ -45,8 +45,7 @@ hb_set_create (void)
if (!(set = hb_object_create<hb_set_t> ())) if (!(set = hb_object_create<hb_set_t> ()))
return hb_set_get_empty (); return hb_set_get_empty ();
set->page_map.init(); set->clear ();
set->pages.init();
return set; return set;
} }
...@@ -96,8 +95,7 @@ hb_set_destroy (hb_set_t *set) ...@@ -96,8 +95,7 @@ hb_set_destroy (hb_set_t *set)
{ {
if (!hb_object_destroy (set)) return; if (!hb_object_destroy (set)) return;
set->page_map.finish(); set->fini ();
set->pages.finish();
free (set); free (set);
} }
...@@ -375,15 +373,14 @@ hb_set_symmetric_difference (hb_set_t *set, ...@@ -375,15 +373,14 @@ hb_set_symmetric_difference (hb_set_t *set,
* hb_set_invert: * hb_set_invert:
* @set: a set. * @set: a set.
* *
* *
* *
* Since: 0.9.10 * Since: 0.9.10
*
* Deprecated: 1.6.1
**/ **/
void void
hb_set_invert (hb_set_t *set) hb_set_invert (hb_set_t *set)
{ {
set->invert ();
} }
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment