<?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>145593</bug_id>
          
          <creation_ts>2015-06-02 22:23:45 -0700</creation_ts>
          <short_desc>Make CSSStyleDeclaration to reference countable</short_desc>
          <delta_ts>2015-06-10 17:48:36 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</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="Hyungwook Lee">hyungwook.lee</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>darin</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1099063</commentid>
    <comment_count>0</comment_count>
    <who name="Hyungwook Lee">hyungwook.lee</who>
    <bug_when>2015-06-02 22:23:45 -0700</bug_when>
    <thetext>CSSStyleDeclaration class and its child classes have handled reference count manually. I think it would be good if we delegate the reference count to RefCount framework.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099064</commentid>
    <comment_count>1</comment_count>
      <attachid>254148</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-06-02 22:24:39 -0700</bug_when>
    <thetext>Created attachment 254148
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099249</commentid>
    <comment_count>2</comment_count>
      <attachid>254148</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-03 13:37:07 -0700</bug_when>
    <thetext>Comment on attachment 254148
Patch

Andreas or Antti did this intentionally, perhaps to save memory. One of them needs to review this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099800</commentid>
    <comment_count>3</comment_count>
      <attachid>254148</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-06-05 06:41:47 -0700</bug_when>
    <thetext>Comment on attachment 254148
Patch

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

&gt; Source/WebCore/css/PropertySetCSSStyleDeclaration.cpp:-129
&gt; -void PropertySetCSSStyleDeclaration::ref()
&gt; -{ 
&gt; -    m_propertySet-&gt;ref();
&gt; -}
&gt; -
&gt; -void PropertySetCSSStyleDeclaration::deref()
&gt; -{
&gt; -    m_propertySet-&gt;deref(); 
&gt; -}

These types have custom refcounting so we can do this here. Basically the refcount of PropertySetCSSStyleDeclaration is delegated to the underlying property set. This scheme is used so CSSStyleDeclaration wrappers for property sets keep their script-observable identity.

&gt; Source/WebCore/css/PropertySetCSSStyleDeclaration.h:76
&gt; -    MutableStyleProperties* m_propertySet;
&gt; +    RefPtr&lt;MutableStyleProperties&gt; m_propertySet;

This creates an ownership cycle. MutableStyleProperties has

std::unique_ptr&lt;PropertySetCSSStyleDeclaration&gt; m_cssomWrapper;

This will prevent it from dying and we&apos;ll leak MutableStyleProperties/PropertySetCSSStyleDeclaration pairs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101182</commentid>
    <comment_count>4</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-06-10 17:48:36 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 254148 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=254148&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/css/PropertySetCSSStyleDeclaration.cpp:-129
&gt; &gt; -void PropertySetCSSStyleDeclaration::ref()
&gt; &gt; -{ 
&gt; &gt; -    m_propertySet-&gt;ref();
&gt; &gt; -}
&gt; &gt; -
&gt; &gt; -void PropertySetCSSStyleDeclaration::deref()
&gt; &gt; -{
&gt; &gt; -    m_propertySet-&gt;deref(); 
&gt; &gt; -}
&gt; 
&gt; These types have custom refcounting so we can do this here. Basically the
&gt; refcount of PropertySetCSSStyleDeclaration is delegated to the underlying
&gt; property set. This scheme is used so CSSStyleDeclaration wrappers for
&gt; property sets keep their script-observable identity.
&gt; 
&gt; &gt; Source/WebCore/css/PropertySetCSSStyleDeclaration.h:76
&gt; &gt; -    MutableStyleProperties* m_propertySet;
&gt; &gt; +    RefPtr&lt;MutableStyleProperties&gt; m_propertySet;
&gt; 
&gt; This creates an ownership cycle. MutableStyleProperties has
&gt; 
&gt; std::unique_ptr&lt;PropertySetCSSStyleDeclaration&gt; m_cssomWrapper;
&gt; 
&gt; This will prevent it from dying and we&apos;ll leak
&gt; MutableStyleProperties/PropertySetCSSStyleDeclaration pairs.

Thank you for your review !</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254148</attachid>
            <date>2015-06-02 22:24:39 -0700</date>
            <delta_ts>2015-06-05 06:41:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145593-20150603142419.patch</filename>
            <type>text/plain</type>
            <size>7844</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2E0YWMzMWUyZDE2YWVi
MGUxOGMwZDYwMzVlZWZjYTBhOTI3MTc1Zi4uYzY1ODg5M2Y3MmQ3MGM0ZGE4N2Y2MGUzM2U4ZTY0
ZDgyN2U2YmFiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE1LTA2LTAyICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBNYWtlIENTU1N0
eWxlRGVjbGFyYXRpb24gdG8gcmVmZXJlbmNlIGNvdW50YWJsZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1NTkzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgd2UgbWFrZSBDU1NTdHlsZURlY2xhcmF0
aW9uIHRvIGluaGVyaXQgUmVmQ291bnRlZCwgd2UgZG9uJ3QgbmVlZCB0byB1c2UgcmVmKCksIGRl
cmVmKCkgbWFudWFsbHkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBiZWhhdmlvciBjaGFu
Z2UuCisKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Q1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbjo6cmVmKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nv
bXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6ZGVyZWYpOiBEZWxldGVkLgorICAgICAgICAqIGNzcy9D
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaDoKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVEZWNs
YXJhdGlvbi5oOgorICAgICAgICAqIGNzcy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uOjpy
ZWYpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJvcGVydHlTZXRDU1NTdHlsZURlY2xh
cmF0aW9uOjpkZXJlZik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVDU1NT
dHlsZURlY2xhcmF0aW9uOjpTdHlsZVJ1bGVDU1NTdHlsZURlY2xhcmF0aW9uKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZUNTU1N0eWxlRGVjbGFyYXRpb246On5TdHlsZVJ1
bGVDU1NTdHlsZURlY2xhcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
UnVsZUNTU1N0eWxlRGVjbGFyYXRpb246OnJlZik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZVJ1bGVDU1NTdHlsZURlY2xhcmF0aW9uOjpkZXJlZik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpTdHlsZVJ1bGVDU1NTdHlsZURlY2xhcmF0aW9uOjpyZWF0dGFjaCk6IERlbGV0
ZWQuCisgICAgICAgICogY3NzL1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5oOgorCiAy
MDE1LTA2LTAyICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgogCiAgICAgICAg
IEFYOiBkZWJ1Z2dpbmcgYXR0cmlidXRlcyBmb3IgdGV4dCBtYXJrZXJzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDU3ODJh
ODNkOWVmOThjODhmNjYxOTMwMzU1ZGEzNTIzMDY1Y2RiYTIuLjUxOGZiMjVmZmU3OGRkMzYxYzNm
ZTVmZGNjMzkwMjkzMTFhYmEzNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0xMjg1LDcgKzEyODUsNiBAQCBDb21wdXRl
ZFN0eWxlRXh0cmFjdG9yOjpDb21wdXRlZFN0eWxlRXh0cmFjdG9yKFBhc3NSZWZQdHI8Tm9kZT4g
bm9kZSwgYm9vbCBhbGxvdwogQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpDU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb24oUGFzc1JlZlB0cjxOb2RlPiBuLCBib29sIGFsbG93VmlzaXRlZFN0
eWxlLCBjb25zdCBTdHJpbmcmIHBzZXVkb0VsZW1lbnROYW1lKQogICAgIDogbV9ub2RlKG4pCiAg
ICAgLCBtX2FsbG93VmlzaXRlZFN0eWxlKGFsbG93VmlzaXRlZFN0eWxlKQotICAgICwgbV9yZWZD
b3VudCgxKQogewogICAgIHVuc2lnbmVkIG5hbWVXaXRob3V0Q29sb25zU3RhcnQgPSBwc2V1ZG9F
bGVtZW50TmFtZVswXSA9PSAnOicgPyAocHNldWRvRWxlbWVudE5hbWVbMV0gPT0gJzonID8gMiA6
IDEpIDogMDsKICAgICBtX3BzZXVkb0VsZW1lbnRTcGVjaWZpZXIgPSBDU1NTZWxlY3Rvcjo6cHNl
dWRvSWQoQ1NTU2VsZWN0b3I6OnBhcnNlUHNldWRvRWxlbWVudFR5cGUoCkBAIC0xMjk2LDE4ICsx
Mjk1LDYgQEAgQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjp+Q1NTQ29tcHV0ZWRTdHlsZURl
Y2xhcmF0aW9uKCkKIHsKIH0KIAotdm9pZCBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OnJl
ZigpCi17Ci0gICAgKyttX3JlZkNvdW50OwotfQotCi12b2lkIENTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbjo6ZGVyZWYoKQotewotICAgIEFTU0VSVChtX3JlZkNvdW50KTsKLSAgICBpZiAoIS0t
bV9yZWZDb3VudCkKLSAgICAgICAgZGVsZXRlIHRoaXM7Ci19Ci0KIFN0cmluZyBDU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb246OmNzc1RleHQoKSBjb25zdAogewogICAgIFN0cmluZ0J1aWxkZXIg
cmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbi5oCmluZGV4IGVmZGMxNTczODk0MDYwMmU0MmE5ZGI5MTJlMzMxNWVkMGUwNDNkNTEuLmVh
NjdlZjZhZmY4OWEwMjQ3OWFiNzAyMjZiMjBjZDVjNzY3ODZmNzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgKQEAgLTkxLDkgKzkxLDYg
QEAgcHVibGljOgogICAgIH0KICAgICB2aXJ0dWFsIH5DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24oKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCByZWYoKSBvdmVycmlkZTsK
LSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgZGVyZWYoKSBvdmVycmlkZTsKLQogICAg
IFN0cmluZyBnZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQpIGNvbnN0OwogCiBwcml2YXRl
OgpAQCAtMTIyLDcgKzExOSw2IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPE5vZGU+IG1fbm9kZTsK
ICAgICBQc2V1ZG9JZCBtX3BzZXVkb0VsZW1lbnRTcGVjaWZpZXI7CiAgICAgYm9vbCBtX2FsbG93
VmlzaXRlZFN0eWxlOwotICAgIHVuc2lnbmVkIG1fcmVmQ291bnQ7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNs
YXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaAppbmRl
eCAyNDc1YzE3MWYzNzQ0YzI2MzZiZmM4NzllMWI5ZGMxYWNiMWRiN2M4Li5hMTI2NTM3ZTEzYWI5
NDljMmViM2MyN2Y4YzA3MTI0YWI5ZGVkZDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHls
ZURlY2xhcmF0aW9uLmgKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5h
bWVzLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTM3LDE0ICszOCwxMSBAQCBjbGFzcyBTdHlsZWRFbGVtZW50OwogCiB0eXBlZGVmIGlu
dCBFeGNlcHRpb25Db2RlOwogCi1jbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uIDogcHVibGljIFNj
cmlwdFdyYXBwYWJsZSB7CitjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uIDogcHVibGljIFJlZkNv
dW50ZWQ8Q1NTU3R5bGVEZWNsYXJhdGlvbj4sIHB1YmxpYyBTY3JpcHRXcmFwcGFibGUgewogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKENTU1N0eWxlRGVjbGFyYXRpb24pOyBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5DU1NTdHlsZURlY2xhcmF0aW9uKCkg
eyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVmKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkZXJl
ZigpID0gMDsKLQogICAgIHZpcnR1YWwgU3R5bGVkRWxlbWVudCogcGFyZW50RWxlbWVudCgpIGNv
bnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIENTU1J1bGUqIHBhcmVudFJ1bGUo
KSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0ID0gMDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlv
bi5jcHAKaW5kZXggYzcyODUxZjAwMGEyYjVjYjkxOWRkZWMyZTIxNmY4NDQ5YjZiOTkwMS4uYjI0
ZTE1ZTM5ZjYwMmY3ZmZlYWQ4MDBiZjVlMGJlYjM1NmI4ZWJmNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTEx
OCwxNiArMTE4LDYgQEAgYm9vbCBTdHlsZUF0dHJpYnV0ZU11dGF0aW9uU2NvcGU6OnNfc2hvdWxk
RGVsaXZlciA9IGZhbHNlOwogCiB9IC8vIG5hbWVzcGFjZQogCi12b2lkIFByb3BlcnR5U2V0Q1NT
U3R5bGVEZWNsYXJhdGlvbjo6cmVmKCkKLXsgCi0gICAgbV9wcm9wZXJ0eVNldC0+cmVmKCk7Ci19
Ci0KLXZvaWQgUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uOjpkZXJlZigpCi17Ci0gICAg
bV9wcm9wZXJ0eVNldC0+ZGVyZWYoKTsgCi19Ci0KIHVuc2lnbmVkIFByb3BlcnR5U2V0Q1NTU3R5
bGVEZWNsYXJhdGlvbjo6bGVuZ3RoKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9wcm9wZXJ0eVNl
dC0+cHJvcGVydHlDb3VudCgpOwpAQCAtMzAwLDI4ICsyOTAsMTQgQEAgUmVmPE11dGFibGVTdHls
ZVByb3BlcnRpZXM+IFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbjo6Y29weVByb3BlcnRp
ZXMoKSBjb24KICAgICAKIFN0eWxlUnVsZUNTU1N0eWxlRGVjbGFyYXRpb246OlN0eWxlUnVsZUNT
U1N0eWxlRGVjbGFyYXRpb24oTXV0YWJsZVN0eWxlUHJvcGVydGllcyYgcHJvcGVydHlTZXQsIENT
U1J1bGUmIHBhcmVudFJ1bGUpCiAgICAgOiBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24o
JnByb3BlcnR5U2V0KQotICAgICwgbV9yZWZDb3VudCgxKQogICAgICwgbV9wYXJlbnRSdWxlKCZw
YXJlbnRSdWxlKQogewotICAgIG1fcHJvcGVydHlTZXQtPnJlZigpOwogfQogCiBTdHlsZVJ1bGVD
U1NTdHlsZURlY2xhcmF0aW9uOjp+U3R5bGVSdWxlQ1NTU3R5bGVEZWNsYXJhdGlvbigpCiB7Ci0g
ICAgbV9wcm9wZXJ0eVNldC0+ZGVyZWYoKTsKIH0KIAotdm9pZCBTdHlsZVJ1bGVDU1NTdHlsZURl
Y2xhcmF0aW9uOjpyZWYoKQoteyAKLSAgICArK21fcmVmQ291bnQ7Ci19Ci0KLXZvaWQgU3R5bGVS
dWxlQ1NTU3R5bGVEZWNsYXJhdGlvbjo6ZGVyZWYoKQoteyAKLSAgICBBU1NFUlQobV9yZWZDb3Vu
dCk7Ci0gICAgaWYgKCEtLW1fcmVmQ291bnQpCi0gICAgICAgIGRlbGV0ZSB0aGlzOwotfQogCiBi
b29sIFN0eWxlUnVsZUNTU1N0eWxlRGVjbGFyYXRpb246OndpbGxNdXRhdGUoKQogewpAQCAtMzUw
LDkgKzMyNiw3IEBAIENTU1N0eWxlU2hlZXQqIFN0eWxlUnVsZUNTU1N0eWxlRGVjbGFyYXRpb246
OnBhcmVudFN0eWxlU2hlZXQoKSBjb25zdAogCiB2b2lkIFN0eWxlUnVsZUNTU1N0eWxlRGVjbGFy
YXRpb246OnJlYXR0YWNoKE11dGFibGVTdHlsZVByb3BlcnRpZXMmIHByb3BlcnR5U2V0KQogewot
ICAgIG1fcHJvcGVydHlTZXQtPmRlcmVmKCk7CiAgICAgbV9wcm9wZXJ0eVNldCA9ICZwcm9wZXJ0
eVNldDsKLSAgICBtX3Byb3BlcnR5U2V0LT5yZWYoKTsKIH0KIAogdm9pZCBJbmxpbmVDU1NTdHls
ZURlY2xhcmF0aW9uOjpkaWRNdXRhdGUoTXV0YXRpb25UeXBlIHR5cGUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmgKaW5kZXggMzNh
MDM4NmNkYjIwNTYwMDBkZTIxOGUxNDkwMzM3NDk1ZmMwMzhiYS4uYzA0ZjJiZjhjZDc3OGY2Njdj
ZjYyYzNiZWIwZjlmMDY4MjM4Y2RlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1By
b3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Q
cm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uaApAQCAtNDYsOSArNDYsNiBAQCBwdWJsaWM6
CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIGNsZWFyUGFyZW50RWxlbWVudCgpIHsgQVNTRVJUX05P
VF9SRUFDSEVEKCk7IH0KICAgICBTdHlsZVNoZWV0Q29udGVudHMqIGNvbnRleHRTdHlsZVNoZWV0
KCkgY29uc3Q7Ci0gICAgCi0gICAgdmlydHVhbCB2b2lkIHJlZigpIG92ZXJyaWRlOwotICAgIHZp
cnR1YWwgdm9pZCBkZXJlZigpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgQ1NT
UnVsZSogcGFyZW50UnVsZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG51bGxwdHI7IH0KQEAg
LTc2LDcgKzczLDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCB3aWxsTXV0YXRlKCkg
V0FSTl9VTlVTRURfUkVUVVJOIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlk
TXV0YXRlKE11dGF0aW9uVHlwZSkgeyB9CiAKLSAgICBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzKiBt
X3Byb3BlcnR5U2V0OworICAgIFJlZlB0cjxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzPiBtX3Byb3Bl
cnR5U2V0OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxIYXNoTWFwPENTU1ZhbHVlKiwgUmVmUHRyPENT
U1ZhbHVlPj4+IG1fY3Nzb21DU1NWYWx1ZUNsb25lczsKIH07CiAKQEAgLTkwLDkgKzg3LDYgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgflN0eWxlUnVsZUNTU1N0eWxlRGVjbGFyYXRpb24oKTsKIAog
ICAgIHZvaWQgY2xlYXJQYXJlbnRSdWxlKCkgeyBtX3BhcmVudFJ1bGUgPSAwOyB9Ci0gICAgCi0g
ICAgdmlydHVhbCB2b2lkIHJlZigpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBkZXJlZigp
IG92ZXJyaWRlOwogCiAgICAgdm9pZCByZWF0dGFjaChNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJik7
CiAKQEAgLTEwNiw3ICsxMDAsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCB3aWxsTXV0
YXRlKCkgb3ZlcnJpZGUgV0FSTl9VTlVTRURfUkVUVVJOOwogICAgIHZpcnR1YWwgdm9pZCBkaWRN
dXRhdGUoTXV0YXRpb25UeXBlKSBvdmVycmlkZTsKIAotICAgIHVuc2lnbmVkIG1fcmVmQ291bnQ7
CiAgICAgQ1NTUnVsZSogbV9wYXJlbnRSdWxlOwogfTsKIAo=
</data>
<flag name="review"
          id="279142"
          type_id="1"
          status="-"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>