<?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>48841</bug_id>
          
          <creation_ts>2010-11-02 08:55:40 -0700</creation_ts>
          <short_desc>Remove special handling of HashTableDeletedValue in PlatformRefPtr and manually manage memory that cannot be controlled by HashTraits</short_desc>
          <delta_ts>2010-11-02 12:20:57 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Robinson">mrobinson</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>303391</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-11-02 08:55:40 -0700</bug_when>
    <thetext>https://bugs.webkit.org/show_bug.cgi?id=46794 introduced handling of HashTableDeletedValue into the smart point directly. This was incorrect. Instead, in places where class members track whether or not their parent has been deleted from a hash table, use manual memory management for those members.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303519</commentid>
    <comment_count>1</comment_count>
      <attachid>72707</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-11-02 11:45:06 -0700</bug_when>
    <thetext>Created attachment 72707
Patch for this issue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303531</commentid>
    <comment_count>2</comment_count>
      <attachid>72707</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-11-02 11:56:48 -0700</bug_when>
    <thetext>Comment on attachment 72707
Patch for this issue

Makes sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303548</commentid>
    <comment_count>3</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-11-02 12:20:57 -0700</bug_when>
    <thetext>Committed r71148: &lt;http://trac.webkit.org/changeset/71148&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72707</attachid>
            <date>2010-11-02 11:45:06 -0700</date>
            <delta_ts>2010-11-02 11:56:48 -0700</delta_ts>
            <desc>Patch for this issue</desc>
            <filename>bug-48841-20101102114504.patch</filename>
            <type>text/plain</type>
            <size>14588</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA3YjkzNWQ0ZTQ2ZDkyZjM5NGYxY2RjZmI3NmVlOTJmZDRiYjhmYzJmLi4x
MDJlOTZlN2UxYzY2NThkOTYxOWNjOGUxNTkzMTY4OWJlNWRjNzJmIDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTkgQEAKKzIwMTAtMTEtMDIgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlbW92ZSBzcGVjaWFsIGhhbmRsaW5nIG9mIEhhc2hUYWJsZURlbGV0ZWRWYWx1ZSBpbiBQbGF0
Zm9ybVJlZlB0ciBhbmQgbWFudWFsbHkgbWFuYWdlIG1lbW9yeSB0aGF0IGNhbm5vdCBiZSBjb250
cm9sbGVkIGJ5IEhhc2hUcmFpdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ4ODQxCisKKyAgICAgICAgUmVtb3ZlIHNwZWNpYWwgaGFuZGxpbmcgb2Yg
SGFzaFRhYmxlRGVsZXRlZFZhbHVlIGluIFBsYXRmb3JtUmVmUHRyLgorICAgICAgICBUaGlzIGlz
IGJldHRlciBoYW5kbGVkIG9uIGEgY2FzZS1ieS1jYXNlIGJhc2lzLCB3aGVuIEhhc2hUcmFpdHMK
KyAgICAgICAgY2Fubm90IGFjY291bnQgZm9yIGl0LgorCisgICAgICAgICogd3RmL1BsYXRmb3Jt
UmVmUHRyLmg6CisgICAgICAgIChXVEY6OlBsYXRmb3JtUmVmUHRyOjp+UGxhdGZvcm1SZWZQdHIp
OgorICAgICAgICAoV1RGOjpQbGF0Zm9ybVJlZlB0cjo6Y2xlYXIpOgorICAgICAgICAoV1RGOjo6
Om9wZXJhdG9yKToKKwogMjAxMC0xMC0yOSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdhdmluIEJhcnJhY2xvdWdoLgpkaWZmIC0tZ2l0IGEv
SmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtUmVmUHRyLmggYi9KYXZhU2NyaXB0Q29yZS93dGYv
UGxhdGZvcm1SZWZQdHIuaAppbmRleCBmOTllYzliZTkyZjFlN2Q5ZTgwNTdjN2QzYjgyYzdkYjhh
ZDhhYjI4Li44YWMxNmNiMWUyZWFhMDg5NjExNzNmMDE4ZDBlYWNiMjczNWFmZGIzIDEwMDY0NAot
LS0gYS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm1SZWZQdHIuaAorKysgYi9KYXZhU2NyaXB0
Q29yZS93dGYvUGxhdGZvcm1SZWZQdHIuaApAQCAtNjIsOCArNjIsNyBAQCBwdWJsaWM6CiAKICAg
ICB+UGxhdGZvcm1SZWZQdHIoKQogICAgIHsKLSAgICAgICAgVCogcHRyID0gbV9wdHI7Ci0gICAg
ICAgIGlmIChwdHIgJiYgcHRyICE9IGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpKQorICAgICAgICBp
ZiAoVCogcHRyID0gbV9wdHIpCiAgICAgICAgICAgICBkZXJlZlBsYXRmb3JtUHRyKHB0cik7CiAg
ICAgfQogCkBAIC03MSw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIFQqIHB0ciA9
IG1fcHRyOwogICAgICAgICBtX3B0ciA9IDA7Ci0gICAgICAgIGlmIChwdHIgJiYgcHRyICE9IGhh
c2hUYWJsZURlbGV0ZWRWYWx1ZSgpKQorICAgICAgICBpZiAocHRyKQogICAgICAgICAgICAgZGVy
ZWZQbGF0Zm9ybVB0cihwdHIpOwogICAgIH0KIApAQCAtMTExLDcgKzExMCw3IEBAIHRlbXBsYXRl
IDx0eXBlbmFtZSBUPiBpbmxpbmUgUGxhdGZvcm1SZWZQdHI8VD4mIFBsYXRmb3JtUmVmUHRyPFQ+
OjpvcGVyYXRvcj0oY29uCiAgICAgICAgIHJlZlBsYXRmb3JtUHRyKG9wdHIpOwogICAgIFQqIHB0
ciA9IG1fcHRyOwogICAgIG1fcHRyID0gb3B0cjsKLSAgICBpZiAocHRyICYmIHB0ciAhPSBoYXNo
VGFibGVEZWxldGVkVmFsdWUoKSkKKyAgICBpZiAocHRyKQogICAgICAgICBkZXJlZlBsYXRmb3Jt
UHRyKHB0cik7CiAgICAgcmV0dXJuICp0aGlzOwogfQpAQCAtMTIyLDcgKzEyMSw3IEBAIHRlbXBs
YXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgUGxhdGZvcm1SZWZQdHI8VD4mIFBsYXRmb3JtUmVmUHRy
PFQ+OjpvcGVyYXRvcj0oVCoKICAgICBpZiAob3B0cikKICAgICAgICAgcmVmUGxhdGZvcm1QdHIo
b3B0cik7CiAgICAgbV9wdHIgPSBvcHRyOwotICAgIGlmIChwdHIgJiYgcHRyICE9IGhhc2hUYWJs
ZURlbGV0ZWRWYWx1ZSgpKQorICAgIGlmIChwdHIpCiAgICAgICAgIGRlcmVmUGxhdGZvcm1QdHIo
cHRyKTsKICAgICByZXR1cm4gKnRoaXM7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDk3NDYzYTIwMzY4MDBlYTUxM2VjNzI1NDY3ZDRj
MTc0MThkY2E0MjQuLmQ5NWIzMjI4OWQzY2U1ZjA5ODE1ZmUwZTM1ZmZiZGJkNDE0NGU5N2YgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzYgQEAKKzIwMTAtMTEtMDIgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlbW92ZSBzcGVjaWFsIGhhbmRsaW5nIG9mIEhhc2hUYWJsZURlbGV0ZWRWYWx1ZSBpbiBQbGF0
Zm9ybVJlZlB0ciBhbmQgbWFudWFsbHkgbWFuYWdlIG1lbW9yeSB0aGF0IGNhbm5vdCBiZSBjb250
cm9sbGVkIGJ5IEhhc2hUcmFpdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ4ODQxCisKKyAgICAgICAgU3dpdGNoIHRvIG1hbnVhbGx5IG1hbmFnaW5n
IHRoZSBtZW1vcnkgaW4gRm9udFBsYXRmb3JtRGF0YUZyZWVUeXBlLiBUaGlzCisgICAgICAgIGlz
IG5lY2Vzc2FyeSBiZWNhdXNlIHNtYXJ0IHBvaW50ZXJzIGRvIG5vdCBrbm93IGhvdyB0byBkZWFs
IHdpdGggYSBwb2ludGVyCisgICAgICAgIHZhbHVlIG9mIC0xIChIYXNoVGFibGVEZWxldGVkVmFs
dWUpIGFuZCBIYXNoVHJhaXRzIGNhbiBvbmx5IG1hbmFnZSB0aGUgdHlwZQorICAgICAgICBjb250
YWluZWQgaW4gdGhlIEhhc2hNYXAuIAorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBhcyB0aGlzIHNo
b3VsZCBub3QgY2hhbmdlIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9Gb250UGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpGb250UGxhdGZvcm1EYXRhOjpvcGVyYXRvcj0pOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBs
YXRmb3JtRGF0YTo6fkZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBs
YXRmb3JtRGF0YTo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1E
YXRhOjppbml0aWFsaXplV2l0aEZvbnRGYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9Gb250UGxhdGZvcm1EYXRhRnJlZVR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dFBsYXRmb3JtRGF0YTo6c2NhbGVkRm9udCk6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZv
cm1EYXRhOjpoYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OmlzSGFz
aFRhYmxlRGVsZXRlZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6
Omhhc2hUYWJsZURlbGV0ZWRGb250VmFsdWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0dseXBoUGFnZVRyZWVOb2RlQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2x5
cGhQYWdlOjpmaWxsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9TaW1wbGVG
b250RGF0YUNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpwbGF0
Zm9ybUluaXQpOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRm9udERhdGE6OmNvbnRhaW5zQ2hh
cmFjdGVycyk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1XaWR0
aEZvckdseXBoKToKKwogMjAxMC0xMS0wMSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGln
YWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250UGxhdGZvcm1EYXRhRnJlZVR5cGUu
Y3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250UGxhdGZvcm1EYXRhRnJl
ZVR5cGUuY3BwCmluZGV4IGJhMzA3ZmFhYmRjYjgyNWMyMTA4NWQ0ODFlMGI4YWU2MzY2YWQ3MjQu
LmViYmM1MGRhNWIyYTVkMmUyMTk0NmE1Mjk0YmY5NGJkZTM0OTk1YWQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udFBsYXRmb3JtRGF0YUZyZWVUeXBlLmNw
cAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRQbGF0Zm9ybURhdGFG
cmVlVHlwZS5jcHAKQEAgLTEyMCw2ICsxMjAsNyBAQCBGb250UGxhdGZvcm1EYXRhOjpGb250UGxh
dGZvcm1EYXRhKEZjUGF0dGVybiogcGF0dGVybiwgY29uc3QgRm9udERlc2NyaXB0aW9uJiBmbwog
ICAgICwgbV9zeW50aGV0aWNCb2xkKGZhbHNlKQogICAgICwgbV9zeW50aGV0aWNPYmxpcXVlKGZh
bHNlKQogICAgICwgbV9maXhlZFdpZHRoKGZhbHNlKQorICAgICwgbV9zY2FsZWRGb250KDApCiB7
CiAgICAgUGxhdGZvcm1SZWZQdHI8Y2Fpcm9fZm9udF9mYWNlX3Q+IGZvbnRGYWNlID0gYWRvcHRQ
bGF0Zm9ybVJlZihjYWlyb19mdF9mb250X2ZhY2VfY3JlYXRlX2Zvcl9wYXR0ZXJuKG1fcGF0dGVy
bi5nZXQoKSkpOwogICAgIGluaXRpYWxpemVXaXRoRm9udEZhY2UoZm9udEZhY2UuZ2V0KCkpOwpA
QCAtMTQyLDYgKzE0Myw3IEBAIEZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoZmxv
YXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYykKICAgICAsIG1fc3ludGhldGljQm9sZChi
b2xkKQogICAgICwgbV9zeW50aGV0aWNPYmxpcXVlKGl0YWxpYykKICAgICAsIG1fZml4ZWRXaWR0
aChmYWxzZSkKKyAgICAsIG1fc2NhbGVkRm9udCgwKQogewogICAgIC8vIFdlIGNhbm5vdCBjcmVh
dGUgYSBzY2FsZWQgZm9udCBoZXJlLgogfQpAQCAtMTUxLDEzICsxNTMsMTQgQEAgRm9udFBsYXRm
b3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShjYWlyb19mb250X2ZhY2VfdCogZm9udEZhY2UsIGZs
b2F0IHNpemUsIGJvb2wKICAgICAsIG1fc2l6ZShzaXplKQogICAgICwgbV9zeW50aGV0aWNCb2xk
KGJvbGQpCiAgICAgLCBtX3N5bnRoZXRpY09ibGlxdWUoaXRhbGljKQorICAgICwgbV9zY2FsZWRG
b250KDApCiB7CiAgICAgaW5pdGlhbGl6ZVdpdGhGb250RmFjZShmb250RmFjZSk7CiAKLSAgICBG
VF9GYWNlIGZvbnRDb25maWdGYWNlID0gY2Fpcm9fZnRfc2NhbGVkX2ZvbnRfbG9ja19mYWNlKG1f
c2NhbGVkRm9udC5nZXQoKSk7CisgICAgRlRfRmFjZSBmb250Q29uZmlnRmFjZSA9IGNhaXJvX2Z0
X3NjYWxlZF9mb250X2xvY2tfZmFjZShtX3NjYWxlZEZvbnQpOwogICAgIGlmIChmb250Q29uZmln
RmFjZSkgewogICAgICAgICBtX2ZpeGVkV2lkdGggPSBmb250Q29uZmlnRmFjZS0+ZmFjZV9mbGFn
cyAmIEZUX0ZBQ0VfRkxBR19GSVhFRF9XSURUSDsKLSAgICAgICAgY2Fpcm9fZnRfc2NhbGVkX2Zv
bnRfdW5sb2NrX2ZhY2UobV9zY2FsZWRGb250LmdldCgpKTsKKyAgICAgICAgY2Fpcm9fZnRfc2Nh
bGVkX2ZvbnRfdW5sb2NrX2ZhY2UobV9zY2FsZWRGb250KTsKICAgICB9CiB9CiAKQEAgLTE3MSw3
ICsxNzQsNiBAQCBGb250UGxhdGZvcm1EYXRhJiBGb250UGxhdGZvcm1EYXRhOjpvcGVyYXRvcj0o
Y29uc3QgRm9udFBsYXRmb3JtRGF0YSYgb3RoZXIpCiAgICAgbV9zeW50aGV0aWNCb2xkID0gb3Ro
ZXIubV9zeW50aGV0aWNCb2xkOwogICAgIG1fc3ludGhldGljT2JsaXF1ZSA9IG90aGVyLm1fc3lu
dGhldGljT2JsaXF1ZTsKICAgICBtX2ZpeGVkV2lkdGggPSBvdGhlci5tX2ZpeGVkV2lkdGg7Ci0g
ICAgbV9zY2FsZWRGb250ID0gb3RoZXIubV9zY2FsZWRGb250OwogICAgIG1fcGF0dGVybiA9IG90
aGVyLm1fcGF0dGVybjsKIAogICAgIGlmIChtX2ZhbGxiYWNrcykgewpAQCAtMTgwLDExICsxODIs
MTYgQEAgRm9udFBsYXRmb3JtRGF0YSYgRm9udFBsYXRmb3JtRGF0YTo6b3BlcmF0b3I9KGNvbnN0
IEZvbnRQbGF0Zm9ybURhdGEmIG90aGVyKQogICAgICAgICBtX2ZhbGxiYWNrcyA9IDA7CiAgICAg
fQogCisgICAgaWYgKG1fc2NhbGVkRm9udCAmJiBtX3NjYWxlZEZvbnQgIT0gaGFzaFRhYmxlRGVs
ZXRlZEZvbnRWYWx1ZSgpKQorICAgICAgICBjYWlyb19zY2FsZWRfZm9udF9kZXN0cm95KG1fc2Nh
bGVkRm9udCk7CisgICAgbV9zY2FsZWRGb250ID0gY2Fpcm9fc2NhbGVkX2ZvbnRfcmVmZXJlbmNl
KG90aGVyLm1fc2NhbGVkRm9udCk7CisKICAgICByZXR1cm4gKnRoaXM7CiB9CiAKIEZvbnRQbGF0
Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgb3RoZXIp
CiAgICAgOiBtX2ZhbGxiYWNrcygwKQorICAgICwgbV9zY2FsZWRGb250KDApCiB7CiAgICAgKnRo
aXMgPSBvdGhlcjsKIH0KQEAgLTE5Niw3ICsyMDMsNyBAQCBGb250UGxhdGZvcm1EYXRhOjpGb250
UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIG90aGVyLCBmbG9hdCBzaXplKQog
ICAgIC8vIFdlIG5lZWQgdG8gcmVpbml0aWFsaXplIHRoZSBpbnN0YW5jZSwgYmVjYXVzZSB0aGUg
ZGlmZmVyZW5jZSBpbiBzaXplIAogICAgIC8vIG5lY2Vzc2l0YXRlcyBhIG5ldyBzY2FsZWQgZm9u
dCBpbnN0YW5jZS4KICAgICBtX3NpemUgPSBzaXplOwotICAgIGluaXRpYWxpemVXaXRoRm9udEZh
Y2UoY2Fpcm9fc2NhbGVkX2ZvbnRfZ2V0X2ZvbnRfZmFjZShtX3NjYWxlZEZvbnQuZ2V0KCkpKTsK
KyAgICBpbml0aWFsaXplV2l0aEZvbnRGYWNlKGNhaXJvX3NjYWxlZF9mb250X2dldF9mb250X2Zh
Y2UobV9zY2FsZWRGb250KSk7CiB9CiAKIEZvbnRQbGF0Zm9ybURhdGE6On5Gb250UGxhdGZvcm1E
YXRhKCkKQEAgLTIwNSw2ICsyMTIsOSBAQCBGb250UGxhdGZvcm1EYXRhOjp+Rm9udFBsYXRmb3Jt
RGF0YSgpCiAgICAgICAgIEZjRm9udFNldERlc3Ryb3kobV9mYWxsYmFja3MpOwogICAgICAgICBt
X2ZhbGxiYWNrcyA9IDA7CiAgICAgfQorCisgICAgaWYgKG1fc2NhbGVkRm9udCAmJiBtX3NjYWxl
ZEZvbnQgIT0gaGFzaFRhYmxlRGVsZXRlZEZvbnRWYWx1ZSgpKQorICAgICAgICBjYWlyb19zY2Fs
ZWRfZm9udF9kZXN0cm95KG1fc2NhbGVkRm9udCk7CiB9CiAKIGJvb2wgRm9udFBsYXRmb3JtRGF0
YTo6aXNGaXhlZFBpdGNoKCkKQEAgLTIxNiw3ICsyMjYsNyBAQCBib29sIEZvbnRQbGF0Zm9ybURh
dGE6Om9wZXJhdG9yPT0oY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgb3RoZXIpIGNvbnN0CiB7CiAg
ICAgaWYgKG1fcGF0dGVybiA9PSBvdGhlci5tX3BhdHRlcm4pCiAgICAgICAgIHJldHVybiB0cnVl
OwotICAgIGlmICghbV9wYXR0ZXJuIHx8IG1fcGF0dGVybi5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1
ZSgpIHx8ICFvdGhlci5tX3BhdHRlcm4gfHwgb3RoZXIubV9wYXR0ZXJuLmlzSGFzaFRhYmxlRGVs
ZXRlZFZhbHVlKCkpCisgICAgaWYgKCFtX3BhdHRlcm4gfHwgIW90aGVyLm1fcGF0dGVybikKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVybiBGY1BhdHRlcm5FcXVhbChtX3BhdHRlcm4u
Z2V0KCksIG90aGVyLm1fcGF0dGVybi5nZXQoKSk7CiB9CkBAIC0yNTYsNyArMjY2LDcgQEAgdm9p
ZCBGb250UGxhdGZvcm1EYXRhOjppbml0aWFsaXplV2l0aEZvbnRGYWNlKGNhaXJvX2ZvbnRfZmFj
ZV90KiBmb250RmFjZSkKICAgICAgICAgY2Fpcm9fbWF0cml4X3NjYWxlKCZmb250TWF0cml4LCBt
X3NpemUsIG1fc2l6ZSk7CiAgICAgfQogCi0gICAgbV9zY2FsZWRGb250ID0gYWRvcHRQbGF0Zm9y
bVJlZihjYWlyb19zY2FsZWRfZm9udF9jcmVhdGUoZm9udEZhY2UsICZmb250TWF0cml4LCAmY3Rt
LCBvcHRpb25zKSk7CisgICAgbV9zY2FsZWRGb250ID0gY2Fpcm9fc2NhbGVkX2ZvbnRfY3JlYXRl
KGZvbnRGYWNlLCAmZm9udE1hdHJpeCwgJmN0bSwgb3B0aW9ucyk7CiAgICAgY2Fpcm9fZm9udF9v
cHRpb25zX2Rlc3Ryb3kob3B0aW9ucyk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vRm9udFBsYXRmb3JtRGF0YUZyZWVUeXBlLmggYi9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZS5oCmluZGV4IGQ0
N2Q1NTYzYjQ3MDE4OWQwMzcyMzQ4Y2FhYjYwYTNiZDgwNDY4NGUuLjhjMGJkZTgwZDk3ZTRmYjRm
OTcyZDc5ODM4NjlhMTJhZjJhNDQzZjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vRm9udFBsYXRmb3JtRGF0YUZyZWVUeXBlLmgKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250UGxhdGZvcm1EYXRhRnJlZVR5cGUuaApAQCAtNDMsNyAr
NDMsNyBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9zaXplKDApCiAgICAgICAgICwgbV9zeW50aGV0
aWNCb2xkKGZhbHNlKQogICAgICAgICAsIG1fc3ludGhldGljT2JsaXF1ZShmYWxzZSkKLSAgICAg
ICAgLCBtX3NjYWxlZEZvbnQoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWUpCisgICAgICAgICwg
bV9zY2FsZWRGb250KGhhc2hUYWJsZURlbGV0ZWRGb250VmFsdWUoKSkKICAgICAgICAgeyB9CiAK
ICAgICBGb250UGxhdGZvcm1EYXRhKCkKQEAgLTUxLDYgKzUxLDcgQEAgcHVibGljOgogICAgICAg
ICAsIG1fc2l6ZSgwKQogICAgICAgICAsIG1fc3ludGhldGljQm9sZChmYWxzZSkKICAgICAgICAg
LCBtX3N5bnRoZXRpY09ibGlxdWUoZmFsc2UpCisgICAgICAgICwgbV9zY2FsZWRGb250KDApCiAg
ICAgICAgIHsgfQogCiAgICAgRm9udFBsYXRmb3JtRGF0YShGY1BhdHRlcm4qLCBjb25zdCBGb250
RGVzY3JpcHRpb24mKTsKQEAgLTY3LDE4ICs2OCwxOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBzeW50
aGV0aWNCb2xkKCkgY29uc3QgeyByZXR1cm4gbV9zeW50aGV0aWNCb2xkOyB9CiAgICAgYm9vbCBz
eW50aGV0aWNPYmxpcXVlKCkgY29uc3QgeyByZXR1cm4gbV9zeW50aGV0aWNPYmxpcXVlOyB9CiAK
LSAgICBjYWlyb19zY2FsZWRfZm9udF90KiBzY2FsZWRGb250KCkgY29uc3QgeyByZXR1cm4gbV9z
Y2FsZWRGb250LmdldCgpOyB9CisgICAgY2Fpcm9fc2NhbGVkX2ZvbnRfdCogc2NhbGVkRm9udCgp
IGNvbnN0IHsgcmV0dXJuIG1fc2NhbGVkRm9udDsgfQogCiAgICAgdW5zaWduZWQgaGFzaCgpIGNv
bnN0CiAgICAgewotICAgICAgICByZXR1cm4gUHRySGFzaDxjYWlyb19zY2FsZWRfZm9udF90Kj46
Omhhc2gobV9zY2FsZWRGb250LmdldCgpKTsKKyAgICAgICAgcmV0dXJuIFB0ckhhc2g8Y2Fpcm9f
c2NhbGVkX2ZvbnRfdCo+OjpoYXNoKG1fc2NhbGVkRm9udCk7CiAgICAgfQogCiAgICAgYm9vbCBv
cGVyYXRvcj09KGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmKSBjb25zdDsKICAgICBGb250UGxhdGZv
cm1EYXRhJiBvcGVyYXRvcj0oY29uc3QgRm9udFBsYXRmb3JtRGF0YSYpOwogICAgIGJvb2wgaXNI
YXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fc2Nh
bGVkRm9udC5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOworICAgICAgICByZXR1cm4gbV9zY2Fs
ZWRGb250ID09IGhhc2hUYWJsZURlbGV0ZWRGb250VmFsdWUoKTsKICAgICB9CiAKICNpZm5kZWYg
TkRFQlVHCkBAIC05MSwxMCArOTIsMTEgQEAgcHVibGljOgogICAgIGJvb2wgbV9zeW50aGV0aWNC
b2xkOwogICAgIGJvb2wgbV9zeW50aGV0aWNPYmxpcXVlOwogICAgIGJvb2wgbV9maXhlZFdpZHRo
OwotICAgIFBsYXRmb3JtUmVmUHRyPGNhaXJvX3NjYWxlZF9mb250X3Q+IG1fc2NhbGVkRm9udDsK
KyAgICBjYWlyb19zY2FsZWRfZm9udF90KiBtX3NjYWxlZEZvbnQ7CiAKIHByaXZhdGU6CiAgICAg
dm9pZCBpbml0aWFsaXplV2l0aEZvbnRGYWNlKGNhaXJvX2ZvbnRfZmFjZV90Kik7CisgICAgc3Rh
dGljIGNhaXJvX3NjYWxlZF9mb250X3QqIGhhc2hUYWJsZURlbGV0ZWRGb250VmFsdWUoKSB7IHJl
dHVybiByZWludGVycHJldF9jYXN0PGNhaXJvX3NjYWxlZF9mb250X3QqPigtMSk7IH0KIH07CiAK
IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR2x5cGhQYWdl
VHJlZU5vZGVDYWlyby5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dseXBo
UGFnZVRyZWVOb2RlQ2Fpcm8uY3BwCmluZGV4IDY2ZTljMTY5MmI2OWE3MGY1ZTAzOWEyNmYzM2Yx
Mjg4ZjUwOTVlMTAuLmUyZjA5ZjRkOWI1ODA5ZTNmNTBhMWI4OTVkYjUzNGFhZDk5NjU4OGYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR2x5cGhQYWdlVHJlZU5v
ZGVDYWlyby5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HbHlwaFBh
Z2VUcmVlTm9kZUNhaXJvLmNwcApAQCAtNDUsNyArNDUsNyBAQCBib29sIEdseXBoUGFnZTo6Zmls
bCh1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCwgVUNoYXIqIGJ1ZmZlciwgdW5zaWdu
ZWQgYgogICAgIGlmIChidWZmZXJMZW5ndGggPiBHbHlwaFBhZ2U6OnNpemUpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgIEZUX0ZhY2UgZmFjZSA9IGNhaXJvX2Z0X3NjYWxlZF9mb250X2xv
Y2tfZmFjZShmb250RGF0YS0+cGxhdGZvcm1EYXRhKCkubV9zY2FsZWRGb250LmdldCgpKTsKKyAg
ICBGVF9GYWNlIGZhY2UgPSBjYWlyb19mdF9zY2FsZWRfZm9udF9sb2NrX2ZhY2UoZm9udERhdGEt
PnBsYXRmb3JtRGF0YSgpLnNjYWxlZEZvbnQoKSk7CiAgICAgaWYgKCFmYWNlKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKQEAgLTYwLDcgKzYwLDcgQEAgYm9vbCBHbHlwaFBhZ2U6OmZpbGwodW5z
aWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgsIFVDaGFyKiBidWZmZXIsIHVuc2lnbmVkIGIK
ICAgICAgICAgfQogICAgIH0KIAotICAgIGNhaXJvX2Z0X3NjYWxlZF9mb250X3VubG9ja19mYWNl
KGZvbnREYXRhLT5wbGF0Zm9ybURhdGEoKS5tX3NjYWxlZEZvbnQuZ2V0KCkpOworICAgIGNhaXJv
X2Z0X3NjYWxlZF9mb250X3VubG9ja19mYWNlKGZvbnREYXRhLT5wbGF0Zm9ybURhdGEoKS5zY2Fs
ZWRGb250KCkpOwogCiAgICAgcmV0dXJuIGhhdmVHbHlwaHM7CiB9CmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1NpbXBsZUZvbnREYXRhQ2Fpcm8uY3BwIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9TaW1wbGVGb250RGF0YUNhaXJvLmNwcAppbmRl
eCAzZDdjMzRiYzlhYTJmOTA1MTY4NmI4YjFiZWNmYzg1MzM3MmQxNTNkLi5kMzUwMjk0Zjg0OGU0
YWU2MzMwZDEyYjM0MDcyMWY4NDEyMWE1ZGJhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL1NpbXBsZUZvbnREYXRhQ2Fpcm8uY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vU2ltcGxlRm9udERhdGFDYWlyby5jcHAKQEAgLTQ5LDcgKzQ5
LDcgQEAgdm9pZCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1Jbml0KCkKIHsKICAgICBjYWlyb19m
b250X2V4dGVudHNfdCBmb250X2V4dGVudHM7CiAgICAgY2Fpcm9fdGV4dF9leHRlbnRzX3QgdGV4
dF9leHRlbnRzOwotICAgIGNhaXJvX3NjYWxlZF9mb250X2V4dGVudHMobV9wbGF0Zm9ybURhdGEu
bV9zY2FsZWRGb250LmdldCgpLCAmZm9udF9leHRlbnRzKTsKKyAgICBjYWlyb19zY2FsZWRfZm9u
dF9leHRlbnRzKG1fcGxhdGZvcm1EYXRhLnNjYWxlZEZvbnQoKSwgJmZvbnRfZXh0ZW50cyk7CiAg
ICAgbV9hc2NlbnQgPSBzdGF0aWNfY2FzdDxpbnQ+KGxyb3VuZGYoZm9udF9leHRlbnRzLmFzY2Vu
dCkpOwogICAgIG1fZGVzY2VudCA9IHN0YXRpY19jYXN0PGludD4obHJvdW5kZihmb250X2V4dGVu
dHMuZGVzY2VudCkpOwogICAgIG1fbGluZVNwYWNpbmcgPSBzdGF0aWNfY2FzdDxpbnQ+KGxyb3Vu
ZGYoZm9udF9leHRlbnRzLmhlaWdodCkpOwpAQCAtNjAsOSArNjAsOSBAQCB2b2lkIFNpbXBsZUZv
bnREYXRhOjpwbGF0Zm9ybUluaXQoKQogICAgIC8vIHdoaWxlIHdlIGZpZ3VyZSBvdXQgd2hhdCdz
IGdvaW5nIG9uLgogICAgIGlmIChtX2xpbmVTcGFjaW5nIDwgbV9hc2NlbnQgKyBtX2Rlc2NlbnQp
CiAgICAgICAgIG1fbGluZVNwYWNpbmcgPSBtX2FzY2VudCArIG1fZGVzY2VudDsKLSAgICBjYWly
b19zY2FsZWRfZm9udF90ZXh0X2V4dGVudHMobV9wbGF0Zm9ybURhdGEubV9zY2FsZWRGb250Lmdl
dCgpLCAieCIsICZ0ZXh0X2V4dGVudHMpOworICAgIGNhaXJvX3NjYWxlZF9mb250X3RleHRfZXh0
ZW50cyhtX3BsYXRmb3JtRGF0YS5zY2FsZWRGb250KCksICJ4IiwgJnRleHRfZXh0ZW50cyk7CiAg
ICAgbV94SGVpZ2h0ID0gdGV4dF9leHRlbnRzLmhlaWdodDsKLSAgICBjYWlyb19zY2FsZWRfZm9u
dF90ZXh0X2V4dGVudHMobV9wbGF0Zm9ybURhdGEubV9zY2FsZWRGb250LmdldCgpLCAiICIsICZ0
ZXh0X2V4dGVudHMpOworICAgIGNhaXJvX3NjYWxlZF9mb250X3RleHRfZXh0ZW50cyhtX3BsYXRm
b3JtRGF0YS5zY2FsZWRGb250KCksICIgIiwgJnRleHRfZXh0ZW50cyk7CiAgICAgbV9zcGFjZVdp
ZHRoID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRleHRfZXh0ZW50cy54X2FkdmFuY2UpOwogICAgIG1f
bGluZUdhcCA9IG1fbGluZVNwYWNpbmcgLSBtX2FzY2VudCAtIG1fZGVzY2VudDsKICAgICBtX3N5
bnRoZXRpY0JvbGRPZmZzZXQgPSBtX3BsYXRmb3JtRGF0YS5zeW50aGV0aWNCb2xkKCkgPyAxLjBm
IDogMC5mOwpAQCAtOTQsMTkgKzk0LDE5IEBAIFNpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0
YTo6c21hbGxDYXBzRm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzCiAKIGJv
b2wgU2ltcGxlRm9udERhdGE6OmNvbnRhaW5zQ2hhcmFjdGVycyhjb25zdCBVQ2hhciogY2hhcmFj
dGVycywgaW50IGxlbmd0aCkgY29uc3QKIHsKLSAgICBGVF9GYWNlIGZhY2UgPSBjYWlyb19mdF9z
Y2FsZWRfZm9udF9sb2NrX2ZhY2UobV9wbGF0Zm9ybURhdGEubV9zY2FsZWRGb250LmdldCgpKTsK
KyAgICBGVF9GYWNlIGZhY2UgPSBjYWlyb19mdF9zY2FsZWRfZm9udF9sb2NrX2ZhY2UobV9wbGF0
Zm9ybURhdGEuc2NhbGVkRm9udCgpKTsKIAogICAgIGlmICghZmFjZSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewogICAgICAg
ICBpZiAoRmNGcmVlVHlwZUNoYXJJbmRleChmYWNlLCBjaGFyYWN0ZXJzW2ldKSA9PSAwKSB7Ci0g
ICAgICAgICAgICBjYWlyb19mdF9zY2FsZWRfZm9udF91bmxvY2tfZmFjZShtX3BsYXRmb3JtRGF0
YS5tX3NjYWxlZEZvbnQuZ2V0KCkpOworICAgICAgICAgICAgY2Fpcm9fZnRfc2NhbGVkX2ZvbnRf
dW5sb2NrX2ZhY2UobV9wbGF0Zm9ybURhdGEuc2NhbGVkRm9udCgpKTsKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgfQogICAgIH0KIAotICAgIGNhaXJvX2Z0X3NjYWxlZF9mb250
X3VubG9ja19mYWNlKG1fcGxhdGZvcm1EYXRhLm1fc2NhbGVkRm9udC5nZXQoKSk7CisgICAgY2Fp
cm9fZnRfc2NhbGVkX2ZvbnRfdW5sb2NrX2ZhY2UobV9wbGF0Zm9ybURhdGEuc2NhbGVkRm9udCgp
KTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMTIzLDE0ICsxMjMsMTQgQEAgRmxvYXRSZWN0
IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybUJvdW5kc0ZvckdseXBoKEdseXBoKSBjb25zdAogCiBm
bG9hdCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1XaWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBj
b25zdAogewotICAgIEFTU0VSVChtX3BsYXRmb3JtRGF0YS5tX3NjYWxlZEZvbnQpOworICAgIEFT
U0VSVChtX3BsYXRmb3JtRGF0YS5zY2FsZWRGb250KCkpOwogCiAgICAgY2Fpcm9fZ2x5cGhfdCBj
Z2x5cGggPSB7IGdseXBoLCAwLCAwIH07CiAgICAgY2Fpcm9fdGV4dF9leHRlbnRzX3QgZXh0ZW50
czsKLSAgICBjYWlyb19zY2FsZWRfZm9udF9nbHlwaF9leHRlbnRzKG1fcGxhdGZvcm1EYXRhLm1f
c2NhbGVkRm9udC5nZXQoKSwgJmNnbHlwaCwgMSwgJmV4dGVudHMpOworICAgIGNhaXJvX3NjYWxl
ZF9mb250X2dseXBoX2V4dGVudHMobV9wbGF0Zm9ybURhdGEuc2NhbGVkRm9udCgpLCAmY2dseXBo
LCAxLCAmZXh0ZW50cyk7CiAKICAgICBmbG9hdCB3ID0gKGZsb2F0KW1fc3BhY2VXaWR0aDsKLSAg
ICBpZiAoY2Fpcm9fc2NhbGVkX2ZvbnRfc3RhdHVzKG1fcGxhdGZvcm1EYXRhLm1fc2NhbGVkRm9u
dC5nZXQoKSkgPT0gQ0FJUk9fU1RBVFVTX1NVQ0NFU1MgJiYgZXh0ZW50cy54X2FkdmFuY2UpCisg
ICAgaWYgKGNhaXJvX3NjYWxlZF9mb250X3N0YXR1cyhtX3BsYXRmb3JtRGF0YS5zY2FsZWRGb250
KCkpID09IENBSVJPX1NUQVRVU19TVUNDRVNTICYmIGV4dGVudHMueF9hZHZhbmNlKQogICAgICAg
ICB3ID0gKGZsb2F0KWV4dGVudHMueF9hZHZhbmNlOwogCiAgICAgcmV0dXJuIHc7ICAgIAo=
</data>
<flag name="review"
          id="63002"
          type_id="1"
          status="+"
          setter="xan.lopez"
    />
          </attachment>
      

    </bug>

</bugzilla>