<?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>149794</bug_id>
          
          <creation_ts>2015-10-04 01:35:32 -0700</creation_ts>
          <short_desc>GLContext should control ownership of context-related objects</short_desc>
          <delta_ts>2015-10-05 00:14:35 -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>WebKit Nightly 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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mrobinson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1130492</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-10-04 01:35:32 -0700</bug_when>
    <thetext>GLContext should control ownership of context-related objects</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130495</commentid>
    <comment_count>1</comment_count>
      <attachid>262395</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-10-04 01:53:33 -0700</bug_when>
    <thetext>Created attachment 262395
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130506</commentid>
    <comment_count>2</comment_count>
      <attachid>262395</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2015-10-04 08:19:28 -0700</bug_when>
    <thetext>Comment on attachment 262395
Patch

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

&gt; Source/WebCore/platform/graphics/wayland/PlatformDisplayWayland.cpp:155
&gt; +    struct wl_surface* surface = wl_compositor_create_surface(m_compositor);
&gt; +    EGLNativeWindowType nativeWindow = wl_egl_window_create(surface, 1, 1);
&gt; +    auto contextData = std::make_unique&lt;WaylandOffscreenContextData&gt;(surface, nativeWindow);
&gt; +

It&apos;s a bit strange how the window and surface are created outside of the Data object and then destroyed within it. It might not be obvious when using this data structure that it will eventually destroy what you pass to it.

Why not:

1. Have the WaylandOffscreenContextData itself create the Window and surface.
2. Pass the WaylandOffscreenContextData to the constructor of GLContextEGL instead of setting it after creation. This will make the code a bit simpler and prevent forgetting to call GLContext::setContextData.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130507</commentid>
    <comment_count>3</comment_count>
      <attachid>262395</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-10-04 08:30:25 -0700</bug_when>
    <thetext>Comment on attachment 262395
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/wayland/PlatformDisplayWayland.cpp:155
&gt;&gt; +
&gt; 
&gt; It&apos;s a bit strange how the window and surface are created outside of the Data object and then destroyed within it. It might not be obvious when using this data structure that it will eventually destroy what you pass to it.
&gt; 
&gt; Why not:
&gt; 
&gt; 1. Have the WaylandOffscreenContextData itself create the Window and surface.
&gt; 2. Pass the WaylandOffscreenContextData to the constructor of GLContextEGL instead of setting it after creation. This will make the code a bit simpler and prevent forgetting to call GLContext::setContextData.

1. That&apos;s possible, but would require passing the wl_compositor object to the constructor and adding a getter to the class to make the native window object accessible.
2. The parameter should be optional then, as not every GLContext creation procedure would require it.

OK, noted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130508</commentid>
    <comment_count>4</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2015-10-04 08:37:23 -0700</bug_when>
    <thetext>(In reply to comment #3)

&gt; &gt; 1. Have the WaylandOffscreenContextData itself create the Window and surface.
&gt; &gt; 2. Pass the WaylandOffscreenContextData to the constructor of GLContextEGL instead of setting it after creation. This will make the code a bit simpler and prevent forgetting to call GLContext::setContextData.
&gt; 
&gt; 1. That&apos;s possible, but would require passing the wl_compositor object to
&gt; the constructor and adding a getter to the class to make the native window
&gt; object accessible.

Yeah, that seems like a decent approach. Alternatively, just make it a struct.

&gt; 2. The parameter should be optional then, as not every GLContext creation
&gt; procedure would require it.

I agree that would be the best way to do it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130509</commentid>
    <comment_count>5</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-10-04 08:49:37 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; 
&gt; &gt; &gt; 1. Have the WaylandOffscreenContextData itself create the Window and surface.
&gt; &gt; &gt; 2. Pass the WaylandOffscreenContextData to the constructor of GLContextEGL instead of setting it after creation. This will make the code a bit simpler and prevent forgetting to call GLContext::setContextData.
&gt; &gt; 
&gt; &gt; 1. That&apos;s possible, but would require passing the wl_compositor object to
&gt; &gt; the constructor and adding a getter to the class to make the native window
&gt; &gt; object accessible.
&gt; 
&gt; Yeah, that seems like a decent approach. Alternatively, just make it a
&gt; struct.
&gt; 

There&apos;s not much difference between classes and structs in C++, but the virtual destructor is required here, and that IMO fits more into a class than a struct (though it works in both). Publicly exposing the member objects isn&apos;t common, but wouldn&apos;t bother me that much.

Furthermore, the class could be made local to this specific method, i.e. not declared in the WebCore namespace, keeping the implementation under control.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130557</commentid>
    <comment_count>6</comment_count>
      <attachid>262419</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-10-04 22:49:52 -0700</bug_when>
    <thetext>Created attachment 262419
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130568</commentid>
    <comment_count>7</comment_count>
      <attachid>262419</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-10-05 00:14:18 -0700</bug_when>
    <thetext>Comment on attachment 262419
Patch

Clearing flags on attachment: 262419

Committed r190558: &lt;http://trac.webkit.org/changeset/190558&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130569</commentid>
    <comment_count>8</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-10-05 00:14:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262395</attachid>
            <date>2015-10-04 01:53:33 -0700</date>
            <delta_ts>2015-10-04 22:49:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149794-20151004015304.patch</filename>
            <type>text/plain</type>
            <size>4927</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwNTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGZjZjcxZTQ4ZDliNWU1
NTQxY2YwZTBlMjgzMjY2MDFmNGU1NzZhYS4uM2RmZWYwYzRlMGE2NTBlZGFkYzRhMGY1ODc4ZjMx
NWM1NWVmZjE3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE1LTEwLTA0ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBHTENvbnRleHQgc2hv
dWxkIGNvbnRyb2wgb3duZXJzaGlwIG9mIGNvbnRleHQtcmVsYXRlZCBvYmplY3RzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDk3OTQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcmVhdGlvbiBvZiBHTENv
bnRleHQgb2JqZWN0cyBjYW4gZGVwZW5kIG9uIHZhcmlvdXMgcGxhdGZvcm0tc3BlY2lmaWMKKyAg
ICAgICAgb2JqZWN0cyBsaWtlIG5hdGl2ZSB3aW5kb3cgcmVwcmVzZW50YXRpb25zLiBTaW5jZSB0
aGVzZSBvYmplY3RzIGFyZQorICAgICAgICB1c2VkIHNvbGVseSBmb3IgdGhlIEdMQ29udGV4dCBw
dXJwb3NlcywgaXQgd291bGQgbWFrZSBzZW5zZSB0byBhbGxvdworICAgICAgICBHTENvbnRleHQg
dG8gcHJvdmlkZSBhbiBleHRlbnNpYmxlIHdheSB0byBpbXBvc2Ugb3duZXJzaGlwIG9uIHRoZXNl
CisgICAgICAgIG9iamVjdHMgYW5kIGNvbnRyb2wgdGhlaXIgbGlmZXRpbWUuCisKKyAgICAgICAg
R0xDb250ZXh0OjpEYXRhIGlzIGRlY2xhcmVkLCB3aXRoIGEgZGVmYXVsdGVkIHZpcnR1YWwgZGVz
dHJ1Y3Rvci4KKyAgICAgICAgVmFyaW91cyBHTENvbnRleHQgaW1wbGVtZW50YXRpb25zIG9yIHVz
ZXJzIG9mIHRoZXNlIGltcGxlbWVudGF0aW9ucworICAgICAgICBjYW4gZGVyaXZlIGZyb20gR0xD
b250ZXh0OjpEYXRhLCBzdG9yZSBjb250ZXh0LXJlbGF0ZWQgb2JqZWN0cyBpbgorICAgICAgICBp
bnN0YW5jZXMgb2YgdGhlIGRlcml2ZWQgY2xhc3MsIGFuZCBlbnN1cmUgdGhhdCB0aGVzZSBvYmpl
Y3RzIGFyZQorICAgICAgICBwcm9wZXJseSBjbGVhbmVkIHVwIHdoZW4gR0xDb250ZXh0IGRlc3Ry
b3lzIHRoZSBEYXRhIG9iamVjdC4KKworICAgICAgICBUaGUgR0xDb250ZXh0OjpEYXRhIG9iamVj
dCBpcyBtYW5hZ2VkIHRocm91Z2ggYSBwcml2YXRlCisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjw+
IG1lbWJlciBpbiB0aGUgR0xDb250ZXh0IGNsYXNzLiBGb3Igbm93IHRoZSBtZW1iZXIKKyAgICAg
ICAgY2FuIGJlIHNldCB0aHJvdWdoIEdMQ29udGV4dDo6c2V0Q29udGV4dERhdGEoKSBhbmQgaXMg
ZGVzdHJveWVkIGR1cmluZworICAgICAgICB0aGUgR0xDb250ZXh0IGRlc3RydWN0aW9uLgorCisg
ICAgICAgIFdheWxhbmRPZmZzY3JlZW5Db250ZXh0RGF0YSBkZXJpdmVzIGZyb20gR0xDb250ZXh0
OjpEYXRhIGFuZCBpcyB1c2VkCisgICAgICAgIHRvIHRha2UgdGhlIG93bmVyc2hpcCBvZiB0aGUg
d2xfc3VyZmFjZSBhbmQgRUdMTmF0aXZlV2luZG93VHlwZSAoYWthCisgICAgICAgIHdsX2VnbF93
aW5kb3cpIG9iamVjdHMgZm9yIG9mZnNjcmVlbi1iYXNlZCBHTENvbnRleHRzIHVuZGVyIHRoZQor
ICAgICAgICBXYXlsYW5kIHBsYXRmb3JtIHRoYXQgYXJlIHVzZWQgZm9yIHRoZSBzaGFyaW5nIGNv
bnRleHQgYW5kIFdlYkdMLAorICAgICAgICBlZmZlY3RpdmVseSBhdm9pZGluZyB0aGUgbGVhayB0
aGF0IHdvdWxkIGZ1cnRoZXIgcHJvcGFnYXRlIHByb2JsZW1zCisgICAgICAgIGludG8gdGhlIGNv
bXBvc2l0b3IgYW5kIHRoZSBncmFwaGljcyBsaWJyYXJ5LgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR0xDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRleHQ6OnNldENv
bnRleHREYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1BsYXRmb3Jt
RGlzcGxheVdheWxhbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2F5bGFuZE9mZnNjcmVlbkNv
bnRleHREYXRhOjpXYXlsYW5kT2Zmc2NyZWVuQ29udGV4dERhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6V2F5bGFuZE9mZnNjcmVlbkNvbnRleHREYXRhOjp+V2F5bGFuZE9mZnNjcmVlbkNvbnRleHRE
YXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheVdheWxhbmQ6OmNyZWF0ZVNo
YXJpbmdHTENvbnRleHQpOgorCiAyMDE1LTEwLTAzICBSaWNreSBNb25kZWxsbyAgPHJtb25kZWxs
b0BhcHBsZS5jb20+CiAKICAgICAgICAgIlBsdWctaW4gaXMgYmxvY2tlZCIgbWVzc2FnZSBkb2Vz
bid0IGRyYXcgY29ycmVjdGx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HTENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dM
Q29udGV4dC5oCmluZGV4IGU4Zjk3YjJmMWMzMzU2ZjM2NzA2NDM0YmM3NDdlMGZmYTI1ZDUzMjgu
LjJmZjVmNmQ0M2VkMmVhMTNkYWUwMjI5Mzk0ZWQ5MmQzMDczN2U2NWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5oCkBAIC03OSw2ICs3OSwxNSBAQCBw
dWJsaWM6CiAjaWYgRU5BQkxFKEdSQVBISUNTX0NPTlRFWFRfM0QpCiAgICAgdmlydHVhbCBQbGF0
Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtQ29udGV4dCgpID0gMDsKICNlbmRpZgorCisg
ICAgY2xhc3MgRGF0YSB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5EYXRhKCkgPSBk
ZWZhdWx0OworICAgIH07CisgICAgdm9pZCBzZXRDb250ZXh0RGF0YShzdGQ6OnVuaXF1ZV9wdHI8
RGF0YT4mJiBkYXRhKSB7IG1fY29udGV4dERhdGEgPSBXVEY6Om1vdmUoZGF0YSk7IH0KKworcHJp
dmF0ZToKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YT4gbV9jb250ZXh0RGF0YTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dheWxhbmQvUGxhdGZvcm1EaXNwbGF5V2F5bGFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1BsYXRmb3JtRGlzcGxheVdheWxhbmQuY3Bw
CmluZGV4IDRkMGQzMzljNzY1YTNjM2VjYmYyZDM4MzMzNjY0ZGRiZmRiYjJiY2YuLjFkZDk4Zjdl
YzU0NjZiNjZlM2EwNWZmMjQwYWQ1OGY3MDIzNDM3MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvUGxhdGZvcm1EaXNwbGF5V2F5bGFuZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZC9QbGF0Zm9ybURp
c3BsYXlXYXlsYW5kLmNwcApAQCAtMTI5LDExICsxMjksMzQgQEAgc3RkOjp1bmlxdWVfcHRyPFdh
eWxhbmRTdXJmYWNlPiBQbGF0Zm9ybURpc3BsYXlXYXlsYW5kOjpjcmVhdGVTdXJmYWNlKGNvbnN0
IEludFMKICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxXYXlsYW5kU3VyZmFjZT4od2xTdXJm
YWNlLCBuYXRpdmVXaW5kb3cpOwogfQogCitjbGFzcyBXYXlsYW5kT2Zmc2NyZWVuQ29udGV4dERh
dGEgOiBwdWJsaWMgR0xDb250ZXh0OjpEYXRhIHsKK3B1YmxpYzoKKyAgICBXYXlsYW5kT2Zmc2Ny
ZWVuQ29udGV4dERhdGEoc3RydWN0IHdsX3N1cmZhY2UqIHN1cmZhY2UsIEVHTE5hdGl2ZVdpbmRv
d1R5cGUgbmF0aXZlV2luZG93KQorICAgICAgICA6IG1fc3VyZmFjZShzdXJmYWNlKQorICAgICAg
ICAsIG1fbmF0aXZlV2luZG93KG5hdGl2ZVdpbmRvdykKKyAgICB7IH0KKworICAgIHZpcnR1YWwg
fldheWxhbmRPZmZzY3JlZW5Db250ZXh0RGF0YSgpCisgICAgeworICAgICAgICB3bF9lZ2xfd2lu
ZG93X2Rlc3Ryb3kobV9uYXRpdmVXaW5kb3cpOworICAgICAgICB3bF9zdXJmYWNlX2Rlc3Ryb3ko
bV9zdXJmYWNlKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgc3RydWN0IHdsX3N1cmZhY2UqIG1f
c3VyZmFjZTsKKyAgICBFR0xOYXRpdmVXaW5kb3dUeXBlIG1fbmF0aXZlV2luZG93OworfTsKKwog
c3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dEVHTD4gUGxhdGZvcm1EaXNwbGF5V2F5bGFuZDo6Y3Jl
YXRlU2hhcmluZ0dMQ29udGV4dCgpCiB7Ci0gICAgc3RydWN0IHdsX3N1cmZhY2UqIHdsU3VyZmFj
ZSA9IHdsX2NvbXBvc2l0b3JfY3JlYXRlX3N1cmZhY2UobV9jb21wb3NpdG9yKTsKLSAgICBFR0xO
YXRpdmVXaW5kb3dUeXBlIG5hdGl2ZVdpbmRvdyA9IHdsX2VnbF93aW5kb3dfY3JlYXRlKHdsU3Vy
ZmFjZSwgMSwgMSk7Ci0gICAgcmV0dXJuIEdMQ29udGV4dEVHTDo6Y3JlYXRlV2luZG93Q29udGV4
dChuYXRpdmVXaW5kb3csIG51bGxwdHIpOworICAgIHN0cnVjdCB3bF9zdXJmYWNlKiBzdXJmYWNl
ID0gd2xfY29tcG9zaXRvcl9jcmVhdGVfc3VyZmFjZShtX2NvbXBvc2l0b3IpOworICAgIEVHTE5h
dGl2ZVdpbmRvd1R5cGUgbmF0aXZlV2luZG93ID0gd2xfZWdsX3dpbmRvd19jcmVhdGUoc3VyZmFj
ZSwgMSwgMSk7CisgICAgYXV0byBjb250ZXh0RGF0YSA9IHN0ZDo6bWFrZV91bmlxdWU8V2F5bGFu
ZE9mZnNjcmVlbkNvbnRleHREYXRhPihzdXJmYWNlLCBuYXRpdmVXaW5kb3cpOworCisgICAgYXV0
byBjb250ZXh0ID0gR0xDb250ZXh0RUdMOjpjcmVhdGVXaW5kb3dDb250ZXh0KG5hdGl2ZVdpbmRv
dywgbnVsbHB0cik7CisgICAgaWYgKGNvbnRleHQpCisgICAgICAgIGNvbnRleHQtPnNldENvbnRl
eHREYXRhKFdURjo6bW92ZShjb250ZXh0RGF0YSkpOworICAgIHJldHVybiBjb250ZXh0OwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262419</attachid>
            <date>2015-10-04 22:49:52 -0700</date>
            <delta_ts>2015-10-05 00:14:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149794-20151004224922.patch</filename>
            <type>text/plain</type>
            <size>7075</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwNTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGZjZjcxZTQ4ZDliNWU1
NTQxY2YwZTBlMjgzMjY2MDFmNGU1NzZhYS4uODY1Y2Q3NzFjY2U5ZGNmZGYzYmEzNjhiM2UyNTdl
NDg3ODA3ZjQxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE1LTEwLTA0ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBHTENvbnRleHQgc2hv
dWxkIGNvbnRyb2wgb3duZXJzaGlwIG9mIGNvbnRleHQtcmVsYXRlZCBvYmplY3RzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDk3OTQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcmVhdGlvbiBvZiBHTENv
bnRleHQgb2JqZWN0cyBjYW4gZGVwZW5kIG9uIHZhcmlvdXMgcGxhdGZvcm0tc3BlY2lmaWMKKyAg
ICAgICAgb2JqZWN0cyBsaWtlIG5hdGl2ZSB3aW5kb3cgcmVwcmVzZW50YXRpb25zLiBTaW5jZSB0
aGVzZSBvYmplY3RzIGFyZQorICAgICAgICB1c2VkIHNvbGVseSBmb3IgdGhlIEdMQ29udGV4dCBw
dXJwb3NlcywgaXQgd291bGQgbWFrZSBzZW5zZSB0byBhbGxvdworICAgICAgICBHTENvbnRleHQg
dG8gcHJvdmlkZSBhbiBleHRlbnNpYmxlIHdheSB0byBpbXBvc2Ugb3duZXJzaGlwIG9uIHRoZXNl
CisgICAgICAgIG9iamVjdHMgYW5kIGNvbnRyb2wgdGhlaXIgbGlmZXRpbWUuCisKKyAgICAgICAg
R0xDb250ZXh0OjpEYXRhIGlzIGRlY2xhcmVkIHdpdGggYSBkZWZhdWx0ZWQgdmlydHVhbCBkZXN0
cnVjdG9yLgorICAgICAgICBVc2VycyBvZiB0aGVzZSBpbXBsZW1lbnRhdGlvbnMgY2FuIGRlY2xh
cmUgY2xhc3NlcyB0aGF0IGRlcml2ZSBmcm9tCisgICAgICAgIEdMQ29udGV4dDo6RGF0YSBhbmQg
c3RvcmUgY29udGV4dC1yZWxhdGVkIG9iamVjdHMgaW4gaW5zdGFuY2VzIG9mIHRoZQorICAgICAg
ICBkZXJpdmVkIGNsYXNzLCBhbmQgZW5zdXJlIHRoYXQgdGhlc2Ugb2JqZWN0cyBhcmUgcHJvcGVy
bHkgY2xlYW5lZCB1cAorICAgICAgICB3aGVuIEdMQ29udGV4dCBkZXN0cm95cyB0aGUgRGF0YSBv
YmplY3QuCisKKyAgICAgICAgVGhlIEdMQ29udGV4dDo6RGF0YSBvYmplY3QgaXMgbWFuYWdlZCB0
aHJvdWdoIGEgcHJvdGVjdGVkCisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjw+IG1lbWJlciBpbiB0
aGUgR0xDb250ZXh0IGNsYXNzLiBGb3Igbm93IHRoZSBtZW1iZXIKKyAgICAgICAgaXMgb25seSBz
ZXQgaW4gR0xDb250ZXh0RUdMOjpjcmVhdGVXaW5kb3dDb250ZXh0KCkgYW5kIGlzIGRlc3Ryb3ll
ZAorICAgICAgICBkdXJpbmcgdGhlIEdMQ29udGV4dCBkZXN0cnVjdGlvbi4KKworICAgICAgICBU
aGUgbG9jYWwgT2Zmc2NyZWVuQ29udGV4dERhdGEgY2xhc3MgaW4KKyAgICAgICAgUGxhdGZvcm1E
aXNwbGF5V2F5bGFuZDo6Y3JlYXRlU2hhcmluZ0dMQ29udGV4dCgpIGRlcml2ZXMgZnJvbQorICAg
ICAgICBHTENvbnRleHQ6OkRhdGEgYW5kIGlzIHVzZWQgdG8gc3RvcmUgdGhlIHdsX3N1cmZhY2Ug
YW5kCisgICAgICAgIEVHTE5hdGl2ZVdpbmRvd1R5cGUgKGFrYSB3bF9lZ2xfd2luZG93KSBvYmpl
Y3RzIGZvciBvZmZzY3JlZW4KKyAgICAgICAgR0xDb250ZXh0cyB1bmRlciB0aGUgV2F5bGFuZCBw
bGF0Zm9ybSB0aGF0IGFyZSB1c2VkIGZvciB0aGUgc2hhcmluZworICAgICAgICBjb250ZXh0IGFu
ZCBXZWJHTCwgZWZmZWN0aXZlbHkgYXZvaWRpbmcgdGhlIGxlYWsgdGhhdCB3b3VsZCBmdXJ0aGVy
CisgICAgICAgIHByb3BhZ2F0ZSBwcm9ibGVtcyBpbnRvIHRoZSBjb21wb3NpdG9yIGFuZCB0aGUg
Z3JhcGhpY3MgbGlicmFyeS4KKyAgICAgICAgKFN1Y2ggb2Zmc2NyZWVuIGNvbnRleHRzIGFyZSBh
Y3R1YWxseSBtaW1pY2tlZCB2aWEgYSAxeDFweAorICAgICAgICB3bF9lZ2xfd2luZG93IG9iamVj
dCB0aGF0IGFjdHMgYXMgYSBkdW1teSBiYXNlIGZvciB0aGUgcmVsYXRlZAorICAgICAgICB3bF9z
dXJmYWNlIG9iamVjdCkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkdMQ29udGV4dEVHTDo6Y3JlYXRlV2luZG93Q29udGV4dCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvUGxhdGZvcm1EaXNwbGF5V2F5bGFuZC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlXYXlsYW5kOjpjcmVhdGVTaGFyaW5nR0xDb250
ZXh0KToKKwogMjAxNS0xMC0wMyAgUmlja3kgTW9uZGVsbG8gIDxybW9uZGVsbG9AYXBwbGUuY29t
PgogCiAgICAgICAgICJQbHVnLWluIGlzIGJsb2NrZWQiIG1lc3NhZ2UgZG9lc24ndCBkcmF3IGNv
cnJlY3RseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xD
b250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuaApp
bmRleCBlOGY5N2IyZjFjMzM1NmYzNjcwNjQzNGJjNzQ3ZTBmZmEyNWQ1MzI4Li5kNDM5NDU0MjQ4
MzIyNjg1MWRhOTE3MmJmNDI1NTA4MmNhMmZjNmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuaApAQCAtNzksNiArNzksMTQgQEAgcHVibGljOgogI2lm
IEVOQUJMRShHUkFQSElDU19DT05URVhUXzNEKQogICAgIHZpcnR1YWwgUGxhdGZvcm1HcmFwaGlj
c0NvbnRleHQzRCBwbGF0Zm9ybUNvbnRleHQoKSA9IDA7CiAjZW5kaWYKKworICAgIGNsYXNzIERh
dGEgeworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+RGF0YSgpID0gZGVmYXVsdDsKKyAg
ICB9OworCitwcm90ZWN0ZWQ6CisgICAgc3RkOjp1bmlxdWVfcHRyPERhdGE+IG1fY29udGV4dERh
dGE7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCmluZGV4IDA4N2Q5YmZj
ZDYwZjQyYWFjNWEyYWZmYjM3NmVkODRkNzY0MDE1ZDIuLmMwMmZkNjNiZjljNjJhODQ1Y2VmMWQ0
NTBmYTE0OTQxYTBjYTk5MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCkBAIC05NSw3ICs5NSw3IEBAIHN0YXRpYyBi
b29sIGdldEVHTENvbmZpZyhFR0xDb25maWcqIGNvbmZpZywgR0xDb250ZXh0RUdMOjpFR0xTdXJm
YWNlVHlwZSBzdXJmYWNlCiAgICAgcmV0dXJuIGVnbENob29zZUNvbmZpZyhzaGFyZWRFR0xEaXNw
bGF5KCksIGF0dHJpYnV0ZUxpc3QsIGNvbmZpZywgMSwgJm51bWJlckNvbmZpZ3NSZXR1cm5lZCkg
JiYgbnVtYmVyQ29uZmlnc1JldHVybmVkOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0
RUdMPiBHTENvbnRleHRFR0w6OmNyZWF0ZVdpbmRvd0NvbnRleHQoRUdMTmF0aXZlV2luZG93VHlw
ZSB3aW5kb3csIEdMQ29udGV4dCogc2hhcmluZ0NvbnRleHQpCitzdGQ6OnVuaXF1ZV9wdHI8R0xD
b250ZXh0RUdMPiBHTENvbnRleHRFR0w6OmNyZWF0ZVdpbmRvd0NvbnRleHQoRUdMTmF0aXZlV2lu
ZG93VHlwZSB3aW5kb3csIEdMQ29udGV4dCogc2hhcmluZ0NvbnRleHQsIHN0ZDo6dW5pcXVlX3B0
cjxHTENvbnRleHQ6OkRhdGE+JiYgY29udGV4dERhdGEpCiB7CiAgICAgRUdMQ29udGV4dCBlZ2xT
aGFyaW5nQ29udGV4dCA9IHNoYXJpbmdDb250ZXh0ID8gc3RhdGljX2Nhc3Q8R0xDb250ZXh0RUdM
Kj4oc2hhcmluZ0NvbnRleHQpLT5tX2NvbnRleHQgOiAwOwogCkBAIC0xMTcsNyArMTE3LDkgQEAg
c3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dEVHTD4gR0xDb250ZXh0RUdMOjpjcmVhdGVXaW5kb3dD
b250ZXh0KEVHTE5hdGl2ZVdpbmRvd1QKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQog
Ci0gICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R0xDb250ZXh0RUdMPihjb250ZXh0LCBzdXJm
YWNlLCBXaW5kb3dTdXJmYWNlKTsKKyAgICBhdXRvIGdsQ29udGV4dCA9IHN0ZDo6bWFrZV91bmlx
dWU8R0xDb250ZXh0RUdMPihjb250ZXh0LCBzdXJmYWNlLCBXaW5kb3dTdXJmYWNlKTsKKyAgICBn
bENvbnRleHQtPm1fY29udGV4dERhdGEgPSBXVEY6Om1vdmUoY29udGV4dERhdGEpOworICAgIHJl
dHVybiBnbENvbnRleHQ7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IEdMQ29u
dGV4dEVHTDo6Y3JlYXRlUGJ1ZmZlckNvbnRleHQoRUdMQ29udGV4dCBzaGFyaW5nQ29udGV4dCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRl
eHRFR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRF
R0wuaAppbmRleCBkMDRlYmJiZjg1MGMxMTI3ZjZmMjg4ZWM1ODQ4ZDM4NGQ2ZjBhMjFjLi44NjU3
NWE5MTI0Y2VhMTQ0Y2QyZmIzMDliY2JhYzY4NTBiYWFkZDcxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oCkBAIC0zNiw3ICsz
Niw3IEBAIGNsYXNzIEdMQ29udGV4dEVHTCA6IHB1YmxpYyBHTENvbnRleHQgewogcHVibGljOgog
ICAgIGVudW0gRUdMU3VyZmFjZVR5cGUgeyBQYnVmZmVyU3VyZmFjZSwgV2luZG93U3VyZmFjZSwg
UGl4bWFwU3VyZmFjZSB9OwogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0RUdM
PiBjcmVhdGVDb250ZXh0KEVHTE5hdGl2ZVdpbmRvd1R5cGUsIEdMQ29udGV4dCogc2hhcmluZ0Nv
bnRleHQgPSAwKTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dEVHTD4gY3Jl
YXRlV2luZG93Q29udGV4dChFR0xOYXRpdmVXaW5kb3dUeXBlLCBHTENvbnRleHQqIHNoYXJpbmdD
b250ZXh0KTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dEVHTD4gY3JlYXRl
V2luZG93Q29udGV4dChFR0xOYXRpdmVXaW5kb3dUeXBlLCBHTENvbnRleHQqIHNoYXJpbmdDb250
ZXh0LCBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0OjpEYXRhPiYmID0gbnVsbHB0cik7CiAKICAg
ICBHTENvbnRleHRFR0woRUdMQ29udGV4dCwgRUdMU3VyZmFjZSwgRUdMU3VyZmFjZVR5cGUpOwog
I2lmIFBMQVRGT1JNKFgxMSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dheWxhbmQvUGxhdGZvcm1EaXNwbGF5V2F5bGFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1BsYXRmb3JtRGlzcGxheVdheWxhbmQuY3BwCmlu
ZGV4IDRkMGQzMzljNzY1YTNjM2VjYmYyZDM4MzMzNjY0ZGRiZmRiYjJiY2YuLmMyMWQ3MDQ1ZjMw
NGQ4NWNiZDhkNWEwODA0YzBhMWIxNTk1M2FiMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvUGxhdGZvcm1EaXNwbGF5V2F5bGFuZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZC9QbGF0Zm9ybURpc3Bs
YXlXYXlsYW5kLmNwcApAQCAtMTMxLDkgKzEzMSwyNCBAQCBzdGQ6OnVuaXF1ZV9wdHI8V2F5bGFu
ZFN1cmZhY2U+IFBsYXRmb3JtRGlzcGxheVdheWxhbmQ6OmNyZWF0ZVN1cmZhY2UoY29uc3QgSW50
UwogCiBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0RUdMPiBQbGF0Zm9ybURpc3BsYXlXYXlsYW5k
OjpjcmVhdGVTaGFyaW5nR0xDb250ZXh0KCkKIHsKLSAgICBzdHJ1Y3Qgd2xfc3VyZmFjZSogd2xT
dXJmYWNlID0gd2xfY29tcG9zaXRvcl9jcmVhdGVfc3VyZmFjZShtX2NvbXBvc2l0b3IpOwotICAg
IEVHTE5hdGl2ZVdpbmRvd1R5cGUgbmF0aXZlV2luZG93ID0gd2xfZWdsX3dpbmRvd19jcmVhdGUo
d2xTdXJmYWNlLCAxLCAxKTsKLSAgICByZXR1cm4gR0xDb250ZXh0RUdMOjpjcmVhdGVXaW5kb3dD
b250ZXh0KG5hdGl2ZVdpbmRvdywgbnVsbHB0cik7CisgICAgY2xhc3MgT2Zmc2NyZWVuQ29udGV4
dERhdGEgOiBwdWJsaWMgR0xDb250ZXh0OjpEYXRhIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZp
cnR1YWwgfk9mZnNjcmVlbkNvbnRleHREYXRhKCkKKyAgICAgICAgeworICAgICAgICAgICAgd2xf
ZWdsX3dpbmRvd19kZXN0cm95KG5hdGl2ZVdpbmRvdyk7CisgICAgICAgICAgICB3bF9zdXJmYWNl
X2Rlc3Ryb3koc3VyZmFjZSk7CisgICAgICAgIH0KKworICAgICAgICBzdHJ1Y3Qgd2xfc3VyZmFj
ZSogc3VyZmFjZTsKKyAgICAgICAgRUdMTmF0aXZlV2luZG93VHlwZSBuYXRpdmVXaW5kb3c7Cisg
ICAgfTsKKworICAgIGF1dG8gY29udGV4dERhdGEgPSBzdGQ6Om1ha2VfdW5pcXVlPE9mZnNjcmVl
bkNvbnRleHREYXRhPigpOworICAgIGNvbnRleHREYXRhLT5zdXJmYWNlID0gd2xfY29tcG9zaXRv
cl9jcmVhdGVfc3VyZmFjZShtX2NvbXBvc2l0b3IpOworICAgIGNvbnRleHREYXRhLT5uYXRpdmVX
aW5kb3cgPSB3bF9lZ2xfd2luZG93X2NyZWF0ZShjb250ZXh0RGF0YS0+c3VyZmFjZSwgMSwgMSk7
CisKKyAgICBhdXRvIG5hdGl2ZVdpbmRvdyA9IGNvbnRleHREYXRhLT5uYXRpdmVXaW5kb3c7Cisg
ICAgcmV0dXJuIEdMQ29udGV4dEVHTDo6Y3JlYXRlV2luZG93Q29udGV4dChuYXRpdmVXaW5kb3cs
IG51bGxwdHIsIFdURjo6bW92ZShjb250ZXh0RGF0YSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>