<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>234060</bug_id>
          
          <creation_ts>2021-12-08 18:47:48 -0800</creation_ts>
          <short_desc>Make FontCache::invalidateAllFontCaches call invalidate on all worker FontCaches</short_desc>
          <delta_ts>2022-07-24 20:58:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>233488</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Cameron McCormack (:heycam)">heycam</reporter>
          <assigned_to name="Cameron McCormack (:heycam)">heycam</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>darin</cc>
    
    <cc>mattwoodrow</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1821937</commentid>
    <comment_count>0</comment_count>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-12-08 18:47:48 -0800</bug_when>
    <thetext>Make FontCache::invalidateAllFontCaches call invalidate on all worker FontCaches</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821938</commentid>
    <comment_count>1</comment_count>
      <attachid>446481</attachid>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-12-08 18:49:38 -0800</bug_when>
    <thetext>Created attachment 446481
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821941</commentid>
    <comment_count>2</comment_count>
      <attachid>446481</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-12-08 19:00:05 -0800</bug_when>
    <thetext>Comment on attachment 446481
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=446481&amp;action=review

&gt; Source/WebCore/platform/graphics/FontCache.cpp:397
&gt; +static void callOnAllFontCaches(F function)

Can we use WTF::function instead of making this entire thing a template?

Is &quot;call&quot; really the right way to describe something that posts tasks on the run loop?

&gt; Source/WebCore/platform/graphics/FontCache.cpp:417
&gt; +void FontCache::invalidateAllFontCaches()
&gt; +{
&gt; +    callOnAllFontCaches([](FontCache&amp; fontCache) {
&gt; +        fontCache.invalidate();
&gt; +    });
&gt;  }

For the purposes that callers intend, is it OK that this posts tasks that invalidate the font caches in the future, and doesn’t finish invalidating them before returning? Should we change the name to make that clearer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824640</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-15 18:48:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/86553783&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1886453</commentid>
    <comment_count>4</comment_count>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2022-07-24 19:50:08 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #2)
&gt; Comment on attachment 446481 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=446481&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/FontCache.cpp:397
&gt; &gt; +static void callOnAllFontCaches(F function)
&gt; 
&gt; Can we use WTF::function instead of making this entire thing a template?

WTF::function isn&apos;t copyable, so we can&apos;t pass it to all of the worker threads. Adding something like a thread safe refcounted wrapper doesn&apos;t seem worth it to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1886454</commentid>
    <comment_count>5</comment_count>
      <attachid>461188</attachid>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2022-07-24 19:50:24 -0700</bug_when>
    <thetext>Created attachment 461188
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1886461</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-07-24 20:58:19 -0700</bug_when>
    <thetext>Committed 252778@main (073740c9d994): &lt;https://commits.webkit.org/252778@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 461188.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446481</attachid>
            <date>2021-12-08 18:49:38 -0800</date>
            <delta_ts>2021-12-08 19:00:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234060-20211209134936.patch</filename>
            <type>text/plain</type>
            <size>3846</size>
            <attacher name="Cameron McCormack (:heycam)">heycam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTMxYTRlY2EzNGFkM2Fm
ZDg3M2YyYTRjYmU1ZDZkNTFjYzU1OTdhOC4uZWY2NTBlNjQ5Y2JjZGQ4MWE5ZmRmOTcxMWNkZTBi
M2I5MmY1OWVmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTEyLTA4ICBDYW1l
cm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBGb250Q2Fj
aGU6OmludmFsaWRhdGVBbGxGb250Q2FjaGVzIGNhbGwgaW52YWxpZGF0ZSBvbiBhbGwgd29ya2Vy
IEZvbnRDYWNoZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzNDA2MAorCisgICAgICAgIFdlIG5lZWQgdGhpcyBzbyB0aGF0IHdoZW4gYSBzeXN0ZW0g
bGFuZ3VhZ2Ugbm90aWZpY2F0aW9uIGZpcmVzLCBjYWNoZWQKKyAgICAgICAgbGFuZ3VhZ2UgZGVw
ZW5kZW50IGdlbmVyaWNzIGFyZSBjbGVhcmVkIG9uIHdvcmtlciB0aHJlYWRzIHRvby4KKworICAg
ICAgICAqIHBsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRo
cmVhZEdsb2JhbERhdGE6OlRocmVhZEdsb2JhbERhdGE6OmZvbnRDYWNoZUlmRXhpc3RzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udENhY2hlOjpmb3JDdXJyZW50VGhyZWFkSWZFeGlzdHMpOgorICAgICAgICAoV2ViQ29y
ZTo6Y2FsbE9uQWxsRm9udENhY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6Omlu
dmFsaWRhdGVBbGxGb250Q2FjaGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250
Q2FjaGUuaDoKKwogMjAyMS0xMi0wMyAgQ2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUu
Y29tPgogCiAgICAgICAgIE1ha2UgRm9udENhY2hlOjptX3Nob3VsZE1vY2tCb2xkU3lzdGVtRm9u
dEZvckFjY2Vzc2liaWxpdHkgc3RhdGljCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRH
bG9iYWxEYXRhLmgKaW5kZXggNGQ5OGFlZDA2ZGExMTQ1MjQxZTg0MzQ2MGM0MzQxOTJiNWFiZWY4
Yy4uZGY0NWUxYTc0OGJjNWVmMTNkYzI1M2U0NDgyMmUxMjk1MjgwMTQxZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuaApAQCAtMTA4LDYgKzEwOCw3IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuICptX2ZvbnRDYWNoZTsKICAgICB9CiAKKyAgICBGb250Q2Fj
aGUqIGZvbnRDYWNoZUlmRXhpc3RzKCkgeyByZXR1cm4gbV9mb250Q2FjaGUuZ2V0KCk7IH0KICAg
ICBGb250Q2FjaGUqIGZvbnRDYWNoZUlmTm90RGVzdHJveWVkKCkgeyByZXR1cm4gbV9kZXN0cm95
ZWQgPyBudWxscHRyIDogJmZvbnRDYWNoZSgpOyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAppbmRleCAwNDRkNmI3NDVmZjNj
NDUzYmNmZDU0ODZiMTc3MjBiNDc2NGE3MjI4Li5kNDRkMmY5OWNmNDM0MWQ1OTJkNzk0ZmEzYmFk
MDhhMmQyYjE3YmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRDYWNoZS5jcHAKQEAgLTEyNiw2ICsxMjYsMTEgQEAgRm9udENhY2hlJiBGb250Q2FjaGU6OmZv
ckN1cnJlbnRUaHJlYWQoKQogICAgIHJldHVybiB0aHJlYWRHbG9iYWxEYXRhKCkuZm9udENhY2hl
KCk7CiB9CiAKK0ZvbnRDYWNoZSogRm9udENhY2hlOjpmb3JDdXJyZW50VGhyZWFkSWZFeGlzdHMo
KQoreworICAgIHJldHVybiB0aHJlYWRHbG9iYWxEYXRhKCkuZm9udENhY2hlSWZFeGlzdHMoKTsK
K30KKwogRm9udENhY2hlKiBGb250Q2FjaGU6OmZvckN1cnJlbnRUaHJlYWRJZk5vdERlc3Ryb3ll
ZCgpCiB7CiAgICAgcmV0dXJuIHRocmVhZEdsb2JhbERhdGEoKS5mb250Q2FjaGVJZk5vdERlc3Ry
b3llZCgpOwpAQCAtMzg4LDEyICszOTMsMjcgQEAgdm9pZCBGb250Q2FjaGU6OmludmFsaWRhdGUo
KQogICAgIHB1cmdlSW5hY3RpdmVGb250RGF0YSgpOwogfQogCi12b2lkIEZvbnRDYWNoZTo6aW52
YWxpZGF0ZUFsbEZvbnRDYWNoZXMoKQordGVtcGxhdGU8dHlwZW5hbWUgRj4KK3N0YXRpYyB2b2lk
IGNhbGxPbkFsbEZvbnRDYWNoZXMoRiBmdW5jdGlvbikKIHsKICAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwogCi0gICAgLy8gRklYTUU6IEludmFsaWRhdGUgRm9udENhY2hlcyBpbiB3b3JrZXJz
IHRvby4KLSAgICBGb250Q2FjaGU6OmZvckN1cnJlbnRUaHJlYWQoKS5pbnZhbGlkYXRlKCk7Cisg
ICAgZnVuY3Rpb24oRm9udENhY2hlOjpmb3JDdXJyZW50VGhyZWFkKCkpOworCisgICAgTG9ja2Vy
IGxvY2tlciB7IFdvcmtlck9yV29ya2xldFRocmVhZDo6d29ya2VyT3JXb3JrbGV0VGhyZWFkc0xv
Y2soKSB9OworICAgIGZvciAoYXV0byB0aHJlYWQgOiBXb3JrZXJPcldvcmtsZXRUaHJlYWQ6Ondv
cmtlck9yV29ya2xldFRocmVhZHMoKSkgeworICAgICAgICB0aHJlYWQtPnJ1bkxvb3AoKS5wb3N0
VGFzayhbZnVuY3Rpb25dKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7CisgICAgICAgICAgICBp
ZiAoYXV0byBmb250Q2FjaGUgPSBGb250Q2FjaGU6OmZvckN1cnJlbnRUaHJlYWRJZkV4aXN0cygp
KQorICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCpmb250Q2FjaGUpOworICAgICAgICB9KTsKKyAg
ICB9Cit9CisKK3ZvaWQgRm9udENhY2hlOjppbnZhbGlkYXRlQWxsRm9udENhY2hlcygpCit7Cisg
ICAgY2FsbE9uQWxsRm9udENhY2hlcyhbXShGb250Q2FjaGUmIGZvbnRDYWNoZSkgeworICAgICAg
ICBmb250Q2FjaGUuaW52YWxpZGF0ZSgpOworICAgIH0pOwogfQogCiBib29sIEZvbnRDYWNoZTo6
dXNlQmFja3NsYXNoQXNZZW5TaWduRm9yRmFtaWx5KGNvbnN0IEF0b21TdHJpbmcmIGZhbWlseSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKaW5kZXggNWEw
YmRhN2M4OTExMWNlZTI4NTVkNzRjZmEwYjRhYjUwNTYzZTc1MC4uZTc1OWNhODFmMGJjNGUyYzBm
ZGEwZTU0ZWJlMjIxNDZmNjUxMDA3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udENhY2hlLmgKQEAgLTkxLDYgKzkxLDcgQEAgY2xhc3MgRm9udENhY2hlIHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShGb250Q2FjaGUpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgRm9udENhY2hlJiBmb3JDdXJy
ZW50VGhyZWFkKCk7CisgICAgc3RhdGljIEZvbnRDYWNoZSogZm9yQ3VycmVudFRocmVhZElmRXhp
c3RzKCk7CiAgICAgc3RhdGljIEZvbnRDYWNoZSogZm9yQ3VycmVudFRocmVhZElmTm90RGVzdHJv
eWVkKCk7CiAKICAgICBGb250Q2FjaGUoKTsK
</data>
<flag name="review"
          id="471888"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>461188</attachid>
            <date>2022-07-24 19:50:24 -0700</date>
            <delta_ts>2022-07-24 20:58:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234060-20220725145022.patch</filename>
            <type>text/plain</type>
            <size>4090</size>
            <attacher name="Matt Woodrow">mattwoodrow</attacher>
            
              <data encoding="base64">RnJvbSBhMGUxNjQ0ZDE4MTcyNDEyOGE2MjRjZWEzNjFlZWQ3ODgyMzJhYTRkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDYW1lcm9uIE1jQ29ybWFjayA8aGV5Y2FtQGFwcGxlLmNvbT4K
RGF0ZTogTW9uLCA2IERlYyAyMDIxIDEzOjIwOjU0ICsxMTAwClN1YmplY3Q6IFtQQVRDSF0gTWFr
ZSBGb250Q2FjaGU6OmludmFsaWRhdGVBbGxGb250Q2FjaGVzIGNhbGwgaW52YWxpZGF0ZSBvbgog
YWxsIHdvcmtlciBGb250Q2FjaGVzIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzQwNjAKClJldmlld2VkIGJ5IERhcmluIEFkbGVyLgoKV2UgbmVlZCB0aGlzIHNvIHRo
YXQgd2hlbiBhIHN5c3RlbSBsYW5ndWFnZSBub3RpZmljYXRpb24gZmlyZXMsIGNhY2hlZApsYW5n
dWFnZSBkZXBlbmRlbnQgZ2VuZXJpY3MgYXJlIGNsZWFyZWQgb24gd29ya2VyIHRocmVhZHMgdG9v
LgoKKiBwbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmg6CihXZWJDb3JlOjpUaHJlYWRHbG9iYWxE
YXRhOjpUaHJlYWRHbG9iYWxEYXRhOjpmb250Q2FjaGVJZkV4aXN0cyk6CiogcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udENhY2hlLmNwcDoKKFdlYkNvcmU6OkZvbnRDYWNoZTo6Zm9yQ3VycmVudFRocmVh
ZElmRXhpc3RzKToKKFdlYkNvcmU6OmNhbGxPbkFsbEZvbnRDYWNoZXMpOgooV2ViQ29yZTo6Rm9u
dENhY2hlOjppbnZhbGlkYXRlQWxsRm9udENhY2hlcyk6CiogcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dENhY2hlLmg6Ci0tLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5o
ICAgIHwgIDEgKwogLi4uL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcCAg
IHwgMjcgKysrKysrKysrKysrKysrKy0tLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udENhY2hlLmggIHwgIDEgKwogMyBmaWxlcyBjaGFuZ2VkLCAyNiBpbnNlcnRpb25zKCsp
LCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Ro
cmVhZEdsb2JhbERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERh
dGEuaAppbmRleCBkYmRmYjE0ZTViMDAuLmViN2RhOTYwOWY4NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuaApAQCAtMTAyLDYgKzEwMiw3IEBAIHB1YmxpYzoK
ICAgICAgICAgcmV0dXJuICptX2ZvbnRDYWNoZTsKICAgICB9CiAKKyAgICBGb250Q2FjaGUqIGZv
bnRDYWNoZUlmRXhpc3RzKCkgeyByZXR1cm4gbV9mb250Q2FjaGUuZ2V0KCk7IH0KICAgICBGb250
Q2FjaGUqIGZvbnRDYWNoZUlmTm90RGVzdHJveWVkKCkgeyByZXR1cm4gbV9kZXN0cm95ZWQgPyBu
dWxscHRyIDogJmZvbnRDYWNoZSgpOyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAppbmRleCA3MjY3NjZkMmE0ZWMuLjQ4NzE1
Y2E0NzIxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2Fj
aGUuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiVGhyZWFkR2xvYmFsRGF0YS5oIgog
I2luY2x1ZGUgIldlYktpdEZvbnRGYW1pbHlOYW1lcy5oIgogI2luY2x1ZGUgIldvcmtlck9yV29y
a2xldFRocmVhZC5oIgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5oPgogI2luY2x1
ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAtMTMyLDYgKzEzMywxMSBAQCBGb250Q2FjaGUm
IEZvbnRDYWNoZTo6Zm9yQ3VycmVudFRocmVhZCgpCiAgICAgcmV0dXJuIHRocmVhZEdsb2JhbERh
dGEoKS5mb250Q2FjaGUoKTsKIH0KIAorRm9udENhY2hlKiBGb250Q2FjaGU6OmZvckN1cnJlbnRU
aHJlYWRJZkV4aXN0cygpCit7CisgICAgcmV0dXJuIHRocmVhZEdsb2JhbERhdGEoKS5mb250Q2Fj
aGVJZkV4aXN0cygpOworfQorCiBGb250Q2FjaGUqIEZvbnRDYWNoZTo6Zm9yQ3VycmVudFRocmVh
ZElmTm90RGVzdHJveWVkKCkKIHsKICAgICByZXR1cm4gdGhyZWFkR2xvYmFsRGF0YSgpLmZvbnRD
YWNoZUlmTm90RGVzdHJveWVkKCk7CkBAIC00MDgsMTIgKzQxNCwyNyBAQCB2b2lkIEZvbnRDYWNo
ZTo6cmVnaXN0ZXJGb250Q2FjaGVJbnZhbGlkYXRpb25DYWxsYmFjayhGdW5jdGlvbjx2b2lkKCk+
JiYgY2FsbGJhYwogICAgIGZvbnRDYWNoZUludmFsaWRhdGlvbkNhbGxiYWNrKCkgPSBXVEZNb3Zl
KGNhbGxiYWNrKTsKIH0KIAotdm9pZCBGb250Q2FjaGU6OmludmFsaWRhdGVBbGxGb250Q2FjaGVz
KFNob3VsZFJ1bkludmFsaWRhdGlvbkNhbGxiYWNrIHNob3VsZFJ1bkludmFsaWRhdGlvbkNhbGxi
YWNrKQordGVtcGxhdGU8dHlwZW5hbWUgRj4KK3N0YXRpYyB2b2lkIGRpc3BhdGNoVG9BbGxGb250
Q2FjaGVzKEYgZnVuY3Rpb24pCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAg
IC8vIEZJWE1FOiBJbnZhbGlkYXRlIEZvbnRDYWNoZXMgaW4gd29ya2VycyB0b28uCi0gICAgRm9u
dENhY2hlOjpmb3JDdXJyZW50VGhyZWFkKCkuaW52YWxpZGF0ZSgpOworICAgIGZ1bmN0aW9uKEZv
bnRDYWNoZTo6Zm9yQ3VycmVudFRocmVhZCgpKTsKKworICAgIExvY2tlciBsb2NrZXIgeyBXb3Jr
ZXJPcldvcmtsZXRUaHJlYWQ6Ondvcmtlck9yV29ya2xldFRocmVhZHNMb2NrKCkgfTsKKyAgICBm
b3IgKGF1dG8gdGhyZWFkIDogV29ya2VyT3JXb3JrbGV0VGhyZWFkOjp3b3JrZXJPcldvcmtsZXRU
aHJlYWRzKCkpIHsKKyAgICAgICAgdGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2soW2Z1bmN0aW9u
XShTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgeworICAgICAgICAgICAgaWYgKGF1dG8gZm9udENh
Y2hlID0gRm9udENhY2hlOjpmb3JDdXJyZW50VGhyZWFkSWZFeGlzdHMoKSkKKyAgICAgICAgICAg
ICAgICBmdW5jdGlvbigqZm9udENhY2hlKTsKKyAgICAgICAgfSk7CisgICAgfQorfQorCit2b2lk
IEZvbnRDYWNoZTo6aW52YWxpZGF0ZUFsbEZvbnRDYWNoZXMoU2hvdWxkUnVuSW52YWxpZGF0aW9u
Q2FsbGJhY2sgc2hvdWxkUnVuSW52YWxpZGF0aW9uQ2FsbGJhY2spCit7CisgICAgZGlzcGF0Y2hU
b0FsbEZvbnRDYWNoZXMoW10oRm9udENhY2hlJiBmb250Q2FjaGUpIHsKKyAgICAgICAgZm9udENh
Y2hlLmludmFsaWRhdGUoKTsKKyAgICB9KTsKIAogICAgIGlmIChzaG91bGRSdW5JbnZhbGlkYXRp
b25DYWxsYmFjayA9PSBTaG91bGRSdW5JbnZhbGlkYXRpb25DYWxsYmFjazo6WWVzICYmIGZvbnRD
YWNoZUludmFsaWRhdGlvbkNhbGxiYWNrKCkpCiAgICAgICAgIGZvbnRDYWNoZUludmFsaWRhdGlv
bkNhbGxiYWNrKCkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENh
Y2hlLmgKaW5kZXggYzJmOTY4NTczZTU3Li5lY2EwYmRjNjI4MDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oCkBAIC05Miw2ICs5Miw3IEBAIGNsYXNz
IEZvbnRDYWNoZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRm9udENhY2hlKTsgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEZv
bnRDYWNoZSYgZm9yQ3VycmVudFRocmVhZCgpOworICAgIHN0YXRpYyBGb250Q2FjaGUqIGZvckN1
cnJlbnRUaHJlYWRJZkV4aXN0cygpOwogICAgIHN0YXRpYyBGb250Q2FjaGUqIGZvckN1cnJlbnRU
aHJlYWRJZk5vdERlc3Ryb3llZCgpOwogCiAgICAgRm9udENhY2hlKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>