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
......@@ -20,3 +20,6 @@ harfbuzz.gyp accordingly, update the NEWS file from HarfBuzz' release notes, and
bump the version numbers in README.chromium.
Locally patch hb-private.hh to silence unusued variable warnings in MSVC.
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)
if (!(set = hb_object_create<hb_set_t> ()))
return hb_set_get_empty ();
set->page_map.init();
set->pages.init();
set->clear ();
return set;
}
......@@ -96,8 +95,7 @@ hb_set_destroy (hb_set_t *set)
{
if (!hb_object_destroy (set)) return;
set->page_map.finish();
set->pages.finish();
set->fini ();
free (set);
}
......@@ -378,12 +376,11 @@ hb_set_symmetric_difference (hb_set_t *set,
*
*
* Since: 0.9.10
*
* Deprecated: 1.6.1
**/
void
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