<?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>122369</bug_id>
          
          <creation_ts>2013-10-04 19:15:35 -0700</creation_ts>
          <short_desc>Undo texture unit code refactoring - it is ok to bind a texture to multiple locations</short_desc>
          <delta_ts>2013-10-07 12:18:33 -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>WebGL</component>
          <version>528+ (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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>p.szymanski3</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>936477</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-10-04 19:15:35 -0700</bug_when>
    <thetext>The fix for 117868 is an optimisation that causes us to fail the WebGL conformance test. In particular, it is valid to bind a single texture to multiple locations, as long as each location is in a different program.

Revert the change http://trac.webkit.org/changeset/152351</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>936478</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-10-04 19:15:45 -0700</bug_when>
    <thetext>&lt;rdar://problem/15158465&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>936483</commentid>
    <comment_count>2</comment_count>
      <attachid>213432</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-10-04 19:39:51 -0700</bug_when>
    <thetext>Created attachment 213432
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>936536</commentid>
    <comment_count>3</comment_count>
      <attachid>213432</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-10-05 00:37:18 -0700</bug_when>
    <thetext>Comment on attachment 213432
Patch

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

&gt; Source/WebCore/html/canvas/WebGLRenderingContext.cpp:607
&gt; +        m_textureUnits[i].m_texture2DBinding = 0;
&gt; +        m_textureUnits[i].m_textureCubeMapBinding = 0;

nullptr is what we now use instead of 0 in new code like this

&gt; Source/WebCore/html/canvas/WebGLRenderingContext.cpp:1634
&gt; +            m_textureUnits[i].m_texture2DBinding = 0;

nullptr

&gt; Source/WebCore/html/canvas/WebGLRenderingContext.cpp:1636
&gt; +            m_textureUnits[i].m_textureCubeMapBinding = 0;

nullptr

&gt; Source/WebCore/html/canvas/WebGLRenderingContext.cpp:4877
&gt; +    WebGLTexture* tex = 0;

nullptr

Also, can we call this texture instead of tex?

&gt; Source/WebCore/html/canvas/WebGLRenderingContext.h:453
&gt; +    class TextureUnitState {
&gt; +    public:

struct seems better than class/public, although normally we do not use the m_ prefix on public data members in structs like this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>936634</commentid>
    <comment_count>4</comment_count>
      <attachid>213432</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-10-05 12:14:22 -0700</bug_when>
    <thetext>Comment on attachment 213432
Patch

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

I was right to be implicitly chastised for not taking the opportunity to clean up code :)

&gt;&gt; Source/WebCore/html/canvas/WebGLRenderingContext.cpp:4877
&gt;&gt; +    WebGLTexture* tex = 0;
&gt; 
&gt; nullptr
&gt; 
&gt; Also, can we call this texture instead of tex?

Done.

&gt;&gt; Source/WebCore/html/canvas/WebGLRenderingContext.h:453
&gt;&gt; +    public:
&gt; 
&gt; struct seems better than class/public, although normally we do not use the m_ prefix on public data members in structs like this

I changed this to a struct, and removed the m_ prefixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>936636</commentid>
    <comment_count>5</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-10-05 12:21:09 -0700</bug_when>
    <thetext>Committed r156970: &lt;http://trac.webkit.org/changeset/156970&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937183</commentid>
    <comment_count>6</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-10-07 12:18:33 -0700</bug_when>
    <thetext>*** Bug 120285 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213432</attachid>
            <date>2013-10-04 19:39:51 -0700</date>
            <delta_ts>2013-10-05 12:14:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-122369-20131005123949.patch</filename>
            <type>text/plain</type>
            <size>11300</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2OTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGZjNDIyYWQxOGM3MmUz
ODVlMDA0MmRiMmJhNTZhOWJlNWRlODcyZS4uMDE2MTY4M2U3OWEwODBiNGYyMDBjZjI0NmVlMDBk
YmYyNGRjMzgyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEzLTEwLTA0ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBVbmRvIHRleHR1cmUgdW5pdCBj
b2RlIHJlZmFjdG9yaW5nIC0gaXQgaXMgb2sgdG8gYmluZCBhIHRleHR1cmUgdG8gbXVsdGlwbGUg
bG9jYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjIzNjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGUgb3B0aW1pc2F0aW9uIGluIHIxNTIzNTEgKGh0dHA6Ly93ZWJraXQub3JnL2IvMTE3ODY4
KSBpbmNvcnJlY3RseQorICAgICAgICBhc3N1bWVzIHRoYXQgYSB0ZXh0dXJlIGNhbm5vdCBiZSBi
b3VuZCB0byBtb3JlIHRoYW4gb25lIGxvY2F0aW9uLgorICAgICAgICBUaGF0J3MgdHJ1ZSBvbmx5
IHdpdGhpbiB0aGUgc2FtZSBwcm9ncmFtIG9iamVjdC4gSXQncyBsZWdhbCB0bworICAgICAgICBh
ZGRyZXNzIFRFWFRVUkVfQklORElOR18yRCBhbmQgVEVYVFVSRV9CSU5ESU5HX0NVQkVfTUFQIHdp
dGggdGhlCisgICAgICAgIHNhbWUgdGV4dHVyZSBpbiBkaWZmZXJlbnQgcHJvZ3JhbXMuCisKKyAg
ICAgICAgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9LaHJvbm9zR3JvdXAvV2ViR0wvcHVsbC8zOTEg
Zm9yIG1vcmUgaW5mb3JtYXRpb24uCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgcmV2ZXJ0cyB0aGUg
b3B0aW1pc2F0aW9uLgorCisgICAgICAgIENvdmVyZWQgYnkgdGhlIGZvbGxvd2luZyBLaHJvbm9z
IFdlYkdMIDEuMC4xIHRlc3RzLCB3aGljaAorICAgICAgICBub3cgcGFzczoKKyAgICAgICAgLSBj
b25mb3JtYW5jZS9tb3JlL2Z1bmN0aW9ucy90ZXhJbWFnZTJESFRNTC5odG1sCisgICAgICAgIC0g
Y29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyRC5odG1sCisgICAgICAgIC0g
Y29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvdGV4U3ViSW1hZ2UyREhUTUwuaHRtbAorCisgICAg
ICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6fldlYkdMUmVuZGVyaW5nQ29udGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnJlc2hhcGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpiaW5kVGV4dHVyZSk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmRlbGV0ZVRleHR1cmUpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpoYW5kbGVOUE9UVGV4dHVyZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZVRleHR1cmVC
aW5kaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6cmVzdG9y
ZUN1cnJlbnRUZXh0dXJlMkQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dC5oOgorCiAyMDEzLTEwLTA0ICBCZWFyIFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNv
bT4KIAogICAgICAgICBbQ1NTIFNoYXBlc10gU2hhcGUgT3V0c2lkZSBzaG91bGQgcmVsYXlvdXQg
d2hlbiBzZXQgZHluYW1pY2FsbHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDNlOGJhZmI1MDliNWZlOTY3NzAzN2Jj
NWNjMWUxOTM0ZWI2MWExY2IuLjA0MDYzNzRlNjAxMzNmNzFhMmM2YjdhNmM4Yjg4ZmUxMTZkMzU3
YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0LmNwcApAQCAtNjAyLDggKzYwMiwxMCBAQCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
On5XZWJHTFJlbmRlcmluZ0NvbnRleHQoKQogICAgIG1fZnJhbWVidWZmZXJCaW5kaW5nID0gMDsK
ICAgICBtX3JlbmRlcmJ1ZmZlckJpbmRpbmcgPSAwOwogCi0gICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBtX3RleHR1cmVVbml0cy5zaXplKCk7ICsraSkKLSAgICAgICAgbV90ZXh0dXJlVW5pdHNb
aV0ubV90ZXh0dXJlQmluZGluZyA9IDA7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3Rl
eHR1cmVVbml0cy5zaXplKCk7ICsraSkgeworICAgICAgICBtX3RleHR1cmVVbml0c1tpXS5tX3Rl
eHR1cmUyREJpbmRpbmcgPSAwOworICAgICAgICBtX3RleHR1cmVVbml0c1tpXS5tX3RleHR1cmVD
dWJlTWFwQmluZGluZyA9IDA7CisgICAgfQogCiAgICAgbV9ibGFja1RleHR1cmUyRCA9IDA7CiAg
ICAgbV9ibGFja1RleHR1cmVDdWJlTWFwID0gMDsKQEAgLTgwOSw3ICs4MTEsNyBAQCB2b2lkIFdl
YkdMUmVuZGVyaW5nQ29udGV4dDo6cmVzaGFwZShpbnQgd2lkdGgsIGludCBoZWlnaHQpCiAgICAg
fSBlbHNlCiAgICAgICAgIG1fY29udGV4dC0+cmVzaGFwZSh3aWR0aCwgaGVpZ2h0KTsKIAotICAg
IG1fY29udGV4dC0+YmluZFRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIG9i
amVjdE9yWmVybyhtX3RleHR1cmVVbml0c1ttX2FjdGl2ZVRleHR1cmVVbml0XS5tX3RleHR1cmVC
aW5kaW5nLmdldCgpKSk7CisgICAgbV9jb250ZXh0LT5iaW5kVGV4dHVyZShHcmFwaGljc0NvbnRl
eHQzRDo6VEVYVFVSRV8yRCwgb2JqZWN0T3JaZXJvKG1fdGV4dHVyZVVuaXRzW21fYWN0aXZlVGV4
dHVyZVVuaXRdLm1fdGV4dHVyZTJEQmluZGluZy5nZXQoKSkpOwogICAgIG1fY29udGV4dC0+Ymlu
ZFJlbmRlcmJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSQlVGRkVSLCBvYmplY3RPclpl
cm8obV9yZW5kZXJidWZmZXJCaW5kaW5nLmdldCgpKSk7CiAgICAgaWYgKG1fZnJhbWVidWZmZXJC
aW5kaW5nKQogICAgICAgbV9jb250ZXh0LT5iaW5kRnJhbWVidWZmZXIoR3JhcGhpY3NDb250ZXh0
M0Q6OkZSQU1FQlVGRkVSLCBvYmplY3RPclplcm8obV9mcmFtZWJ1ZmZlckJpbmRpbmcuZ2V0KCkp
KTsKQEAgLTEwMDcsMTQgKzEwMDksMTQgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmJp
bmRUZXh0dXJlKEdDM0RlbnVtIHRhcmdldCwgV2ViR0xUZXh0dXJlKiB0ZXh0dXJlLAogICAgIH0K
ICAgICBHQzNEaW50IG1heExldmVsID0gMDsKICAgICBpZiAodGFyZ2V0ID09IEdyYXBoaWNzQ29u
dGV4dDNEOjpURVhUVVJFXzJEKSB7Ci0gICAgICAgIG1fdGV4dHVyZVVuaXRzW21fYWN0aXZlVGV4
dHVyZVVuaXRdLm1fdGV4dHVyZUJpbmRpbmcgPSB0ZXh0dXJlOworICAgICAgICBtX3RleHR1cmVV
bml0c1ttX2FjdGl2ZVRleHR1cmVVbml0XS5tX3RleHR1cmUyREJpbmRpbmcgPSB0ZXh0dXJlOwog
ICAgICAgICBtYXhMZXZlbCA9IG1fbWF4VGV4dHVyZUxldmVsOwogCiAgICAgICAgIGlmIChtX2Ry
YXdpbmdCdWZmZXIgJiYgIW1fYWN0aXZlVGV4dHVyZVVuaXQpCiAgICAgICAgICAgICBtX2RyYXdp
bmdCdWZmZXItPnNldFRleHR1cmUyREJpbmRpbmcob2JqZWN0T3JaZXJvKHRleHR1cmUpKTsKIAog
ICAgIH0gZWxzZSBpZiAodGFyZ2V0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX0NVQkVf
TUFQKSB7Ci0gICAgICAgIG1fdGV4dHVyZVVuaXRzW21fYWN0aXZlVGV4dHVyZVVuaXRdLm1fdGV4
dHVyZUJpbmRpbmcgPSB0ZXh0dXJlOworICAgICAgICBtX3RleHR1cmVVbml0c1ttX2FjdGl2ZVRl
eHR1cmVVbml0XS5tX3RleHR1cmVDdWJlTWFwQmluZGluZyA9IHRleHR1cmU7CiAgICAgICAgIG1h
eExldmVsID0gbV9tYXhDdWJlTWFwVGV4dHVyZUxldmVsOwogICAgIH0gZWxzZSB7CiAgICAgICAg
IHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJiaW5k
VGV4dHVyZSIsICJpbnZhbGlkIHRhcmdldCIpOwpAQCAtMTYyOCw4ICsxNjMwLDEwIEBAIHZvaWQg
V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpkZWxldGVUZXh0dXJlKFdlYkdMVGV4dHVyZSogdGV4dHVy
ZSkKICAgICBpZiAoIWRlbGV0ZU9iamVjdCh0ZXh0dXJlKSkKICAgICAgICAgcmV0dXJuOwogICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV90ZXh0dXJlVW5pdHMuc2l6ZSgpOyArK2kpIHsKLSAg
ICAgICAgaWYgKHRleHR1cmUgPT0gbV90ZXh0dXJlVW5pdHNbaV0ubV90ZXh0dXJlQmluZGluZykK
LSAgICAgICAgICAgIG1fdGV4dHVyZVVuaXRzW2ldLm1fdGV4dHVyZUJpbmRpbmcgPSAwOworICAg
ICAgICBpZiAodGV4dHVyZSA9PSBtX3RleHR1cmVVbml0c1tpXS5tX3RleHR1cmUyREJpbmRpbmcp
CisgICAgICAgICAgICBtX3RleHR1cmVVbml0c1tpXS5tX3RleHR1cmUyREJpbmRpbmcgPSAwOwor
ICAgICAgICBpZiAodGV4dHVyZSA9PSBtX3RleHR1cmVVbml0c1tpXS5tX3RleHR1cmVDdWJlTWFw
QmluZGluZykKKyAgICAgICAgICAgIG1fdGV4dHVyZVVuaXRzW2ldLm1fdGV4dHVyZUN1YmVNYXBC
aW5kaW5nID0gMDsKICAgICB9CiAgICAgaWYgKG1fZnJhbWVidWZmZXJCaW5kaW5nKQogICAgICAg
ICBtX2ZyYW1lYnVmZmVyQmluZGluZy0+cmVtb3ZlQXR0YWNobWVudEZyb21Cb3VuZEZyYW1lYnVm
ZmVyKHRleHR1cmUpOwpAQCAtMjY3Myw5ICsyNjc3LDkgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lLCBFeGNlcHRpb25Db2Rl
JgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNVQlBJWEVMX0JJVFM6CiAgICAgICAgIHJl
dHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlRFWFRVUkVfQklORElOR18yRDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVm
UHRyPFdlYkdMVGV4dHVyZT4obV90ZXh0dXJlVW5pdHNbbV9hY3RpdmVUZXh0dXJlVW5pdF0ubV90
ZXh0dXJlQmluZGluZykpOworICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8
V2ViR0xUZXh0dXJlPihtX3RleHR1cmVVbml0c1ttX2FjdGl2ZVRleHR1cmVVbml0XS5tX3RleHR1
cmUyREJpbmRpbmcpKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX0JJTkRJ
TkdfQ1VCRV9NQVA6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJH
TFRleHR1cmU+KG1fdGV4dHVyZVVuaXRzW21fYWN0aXZlVGV4dHVyZVVuaXRdLm1fdGV4dHVyZUJp
bmRpbmcpKTsKKyAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMVGV4
dHVyZT4obV90ZXh0dXJlVW5pdHNbbV9hY3RpdmVUZXh0dXJlVW5pdF0ubV90ZXh0dXJlQ3ViZU1h
cEJpbmRpbmcpKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfQUxJR05NRU5U
OgogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpVTlBBQ0tfRkxJUF9ZX1dFQkdMOgpAQCAtNDc4MSw3ICs0Nzg1LDggQEAg
dm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmhhbmRsZU5QT1RUZXh0dXJlcyhjb25zdCBjaGFy
KiBmdW5jdGlvbk5hbWUsIGJvb2wgcHIKIHsKICAgICBib29sIHJlc2V0QWN0aXZlVW5pdCA9IGZh
bHNlOwogICAgIGZvciAodW5zaWduZWQgaWkgPSAwOyBpaSA8IG1fdGV4dHVyZVVuaXRzLnNpemUo
KTsgKytpaSkgewotICAgICAgICBpZiAobV90ZXh0dXJlVW5pdHNbaWldLm1fdGV4dHVyZUJpbmRp
bmcgJiYgbV90ZXh0dXJlVW5pdHNbaWldLm1fdGV4dHVyZUJpbmRpbmctPm5lZWRUb1VzZUJsYWNr
VGV4dHVyZSgpKSB7CisgICAgICAgIGlmICgobV90ZXh0dXJlVW5pdHNbaWldLm1fdGV4dHVyZTJE
QmluZGluZyAmJiBtX3RleHR1cmVVbml0c1tpaV0ubV90ZXh0dXJlMkRCaW5kaW5nLT5uZWVkVG9V
c2VCbGFja1RleHR1cmUoKSkKKyAgICAgICAgICAgIHx8IChtX3RleHR1cmVVbml0c1tpaV0ubV90
ZXh0dXJlQ3ViZU1hcEJpbmRpbmcgJiYgbV90ZXh0dXJlVW5pdHNbaWldLm1fdGV4dHVyZUN1YmVN
YXBCaW5kaW5nLT5uZWVkVG9Vc2VCbGFja1RleHR1cmUoKSkpIHsKICAgICAgICAgICAgIGlmIChp
aSAhPSBtX2FjdGl2ZVRleHR1cmVVbml0KSB7CiAgICAgICAgICAgICAgICAgbV9jb250ZXh0LT5h
Y3RpdmVUZXh0dXJlKGlpKTsKICAgICAgICAgICAgICAgICByZXNldEFjdGl2ZVVuaXQgPSB0cnVl
OwpAQCAtNDc4OSwxOSArNDc5NCwyMiBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6aGFu
ZGxlTlBPVFRleHR1cmVzKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgYm9vbCBwcgogICAgICAg
ICAgICAgICAgIG1fY29udGV4dC0+YWN0aXZlVGV4dHVyZShpaSk7CiAgICAgICAgICAgICAgICAg
cmVzZXRBY3RpdmVVbml0ID0gZmFsc2U7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBXZWJH
TFRleHR1cmUqIHRleHR1cmUgPSAwOwotICAgICAgICAgICAgR0MzRGVudW0gdGFyZ2V0ID0gbV90
ZXh0dXJlVW5pdHNbaWldLm1fdGV4dHVyZUJpbmRpbmctPmdldFRhcmdldCgpOworICAgICAgICAg
ICAgV2ViR0xUZXh0dXJlKiB0ZXgyRDsKKyAgICAgICAgICAgIFdlYkdMVGV4dHVyZSogdGV4Q3Vi
ZU1hcDsKICAgICAgICAgICAgIGlmIChwcmVwYXJlVG9EcmF3KSB7CiAgICAgICAgICAgICAgICAg
U3RyaW5nIG1zZyhTdHJpbmcoInRleHR1cmUgYm91bmQgdG8gdGV4dHVyZSB1bml0ICIpICsgU3Ry
aW5nOjpudW1iZXIoaWkpCiAgICAgICAgICAgICAgICAgICAgICsgIiBpcyBub3QgcmVuZGVyYWJs
ZS4gSXQgbWF5YmUgbm9uLXBvd2VyLW9mLTIgYW5kIGhhdmUgaW5jb21wYXRpYmxlIHRleHR1cmUg
ZmlsdGVyaW5nIG9yIGlzIG5vdCAndGV4dHVyZSBjb21wbGV0ZSciKTsKICAgICAgICAgICAgICAg
ICBwcmludEdMV2FybmluZ1RvQ29uc29sZShmdW5jdGlvbk5hbWUsIG1zZy51dGY4KCkuZGF0YSgp
KTsKLSAgICAgICAgICAgICAgICBpZiAodGFyZ2V0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpURVhU
VVJFXzJEKQotICAgICAgICAgICAgICAgICAgICB0ZXh0dXJlID0gbV9ibGFja1RleHR1cmUyRC5n
ZXQoKTsKLSAgICAgICAgICAgICAgICBlbHNlIGlmICh0YXJnZXQgPT0gR3JhcGhpY3NDb250ZXh0
M0Q6OlRFWFRVUkVfQ1VCRV9NQVApCi0gICAgICAgICAgICAgICAgICAgIHRleHR1cmUgPSBtX2Js
YWNrVGV4dHVyZUN1YmVNYXAuZ2V0KCk7Ci0gICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAg
ICAgICB0ZXh0dXJlID0gbV90ZXh0dXJlVW5pdHNbaWldLm1fdGV4dHVyZUJpbmRpbmcuZ2V0KCk7
Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmJpbmRUZXh0dXJlKHRhcmdldCwgb2JqZWN0T3JaZXJv
KHRleHR1cmUpKTsKKyAgICAgICAgICAgICAgICB0ZXgyRCA9IG1fYmxhY2tUZXh0dXJlMkQuZ2V0
KCk7CisgICAgICAgICAgICAgICAgdGV4Q3ViZU1hcCA9IG1fYmxhY2tUZXh0dXJlQ3ViZU1hcC5n
ZXQoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdGV4MkQgPSBtX3Rl
eHR1cmVVbml0c1tpaV0ubV90ZXh0dXJlMkRCaW5kaW5nLmdldCgpOworICAgICAgICAgICAgICAg
IHRleEN1YmVNYXAgPSBtX3RleHR1cmVVbml0c1tpaV0ubV90ZXh0dXJlQ3ViZU1hcEJpbmRpbmcu
Z2V0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobV90ZXh0dXJlVW5pdHNbaWld
Lm1fdGV4dHVyZTJEQmluZGluZyAmJiBtX3RleHR1cmVVbml0c1tpaV0ubV90ZXh0dXJlMkRCaW5k
aW5nLT5uZWVkVG9Vc2VCbGFja1RleHR1cmUoKSkKKyAgICAgICAgICAgICAgICBtX2NvbnRleHQt
PmJpbmRUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBvYmplY3RPclplcm8o
dGV4MkQpKTsKKyAgICAgICAgICAgIGlmIChtX3RleHR1cmVVbml0c1tpaV0ubV90ZXh0dXJlQ3Vi
ZU1hcEJpbmRpbmcgJiYgbV90ZXh0dXJlVW5pdHNbaWldLm1fdGV4dHVyZUN1YmVNYXBCaW5kaW5n
LT5uZWVkVG9Vc2VCbGFja1RleHR1cmUoKSkKKyAgICAgICAgICAgICAgICBtX2NvbnRleHQtPmJp
bmRUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX0NVQkVfTUFQLCBvYmplY3RPclpl
cm8odGV4Q3ViZU1hcCkpOwogICAgICAgICB9CiAgICAgfQogICAgIGlmIChyZXNldEFjdGl2ZVVu
aXQpCkBAIC00ODY2LDggKzQ4NzQsMTAgQEAgaW50IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0
Qm91bmRGcmFtZWJ1ZmZlckhlaWdodCgpCiAKIFdlYkdMVGV4dHVyZSogV2ViR0xSZW5kZXJpbmdD
b250ZXh0Ojp2YWxpZGF0ZVRleHR1cmVCaW5kaW5nKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwg
R0MzRGVudW0gdGFyZ2V0LCBib29sIHVzZVNpeEVudW1zRm9yQ3ViZU1hcCkKIHsKKyAgICBXZWJH
TFRleHR1cmUqIHRleCA9IDA7CiAgICAgc3dpdGNoICh0YXJnZXQpIHsKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpURVhUVVJFXzJEOgorICAgICAgICB0ZXggPSBtX3RleHR1cmVVbml0c1tt
X2FjdGl2ZVRleHR1cmVVbml0XS5tX3RleHR1cmUyREJpbmRpbmcuZ2V0KCk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJ
VkVfWDoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX0NVQkVfTUFQX05FR0FU
SVZFX1g6CkBAIC00ODc5LDE4ICs0ODg5LDE5IEBAIFdlYkdMVGV4dHVyZSogV2ViR0xSZW5kZXJp
bmdDb250ZXh0Ojp2YWxpZGF0ZVRleHR1cmVCaW5kaW5nKGNvbnN0IGNoYXIqIGZ1bmN0aW9uCiAg
ICAgICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9F
TlVNLCBmdW5jdGlvbk5hbWUsICJpbnZhbGlkIHRleHR1cmUgdGFyZ2V0Iik7CiAgICAgICAgICAg
ICByZXR1cm4gMDsKICAgICAgICAgfQorICAgICAgICB0ZXggPSBtX3RleHR1cmVVbml0c1ttX2Fj
dGl2ZVRleHR1cmVVbml0XS5tX3RleHR1cmVDdWJlTWFwQmluZGluZy5nZXQoKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9DVUJFX01BUDoKICAg
ICAgICAgaWYgKHVzZVNpeEVudW1zRm9yQ3ViZU1hcCkgewogICAgICAgICAgICAgc3ludGhlc2l6
ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgZnVuY3Rpb25OYW1lLCAi
aW52YWxpZCB0ZXh0dXJlIHRhcmdldCIpOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAg
IH0KKyAgICAgICAgdGV4ID0gbV90ZXh0dXJlVW5pdHNbbV9hY3RpdmVUZXh0dXJlVW5pdF0ubV90
ZXh0dXJlQ3ViZU1hcEJpbmRpbmcuZ2V0KCk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6
CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VO
VU0sIGZ1bmN0aW9uTmFtZSwgImludmFsaWQgdGV4dHVyZSB0YXJnZXQiKTsKICAgICAgICAgcmV0
dXJuIDA7CiAgICAgfQotICAgIFdlYkdMVGV4dHVyZSogdGV4ID0gbV90ZXh0dXJlVW5pdHNbbV9h
Y3RpdmVUZXh0dXJlVW5pdF0ubV90ZXh0dXJlQmluZGluZy5nZXQoKTsKICAgICBpZiAoIXRleCkK
ICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BF
UkFUSU9OLCBmdW5jdGlvbk5hbWUsICJubyB0ZXh0dXJlIik7CiAgICAgcmV0dXJuIHRleDsKQEAg
LTU5OTYsNyArNjAwNyw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpyZXN0b3JlQ3Vy
cmVudEZyYW1lYnVmZmVyKCkKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpyZXN0b3JlQ3Vy
cmVudFRleHR1cmUyRCgpCiB7CiAgICAgRXhjZXB0aW9uQ29kZSBlYzsKLSAgICBiaW5kVGV4dHVy
ZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgbV90ZXh0dXJlVW5pdHNbbV9hY3RpdmVU
ZXh0dXJlVW5pdF0ubV90ZXh0dXJlQmluZGluZy5nZXQoKSwgZWMpOworICAgIGJpbmRUZXh0dXJl
KEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBtX3RleHR1cmVVbml0c1ttX2FjdGl2ZVRl
eHR1cmVVbml0XS5tX3RleHR1cmUyREJpbmRpbmcuZ2V0KCksIGVjKTsKIH0KIAogYm9vbCBXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OnN1cHBvcnRzRHJhd0J1ZmZlcnMoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaAppbmRleCA2NTBiMGVl
ODY3MDUwYWFlMGE4OGNiZmMxZWU3N2Y4NzY3MGI5ZWNjLi5mMzNiNjkxMTlhMjk0M2I0MTUyNTZi
N2IzOGM1NTFjODE2NGRlNjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaApAQCAtNDQ5LDggKzQ0OSwxMCBAQCBwcml2YXRlOgog
ICAgIFJlZlB0cjxXZWJHTFByb2dyYW0+IG1fY3VycmVudFByb2dyYW07CiAgICAgUmVmUHRyPFdl
YkdMRnJhbWVidWZmZXI+IG1fZnJhbWVidWZmZXJCaW5kaW5nOwogICAgIFJlZlB0cjxXZWJHTFJl
bmRlcmJ1ZmZlcj4gbV9yZW5kZXJidWZmZXJCaW5kaW5nOwotICAgIHN0cnVjdCBUZXh0dXJlVW5p
dFN0YXRlIHsKLSAgICAgICAgUmVmUHRyPFdlYkdMVGV4dHVyZT4gbV90ZXh0dXJlQmluZGluZzsK
KyAgICBjbGFzcyBUZXh0dXJlVW5pdFN0YXRlIHsKKyAgICBwdWJsaWM6CisgICAgICAgIFJlZlB0
cjxXZWJHTFRleHR1cmU+IG1fdGV4dHVyZTJEQmluZGluZzsKKyAgICAgICAgUmVmUHRyPFdlYkdM
VGV4dHVyZT4gbV90ZXh0dXJlQ3ViZU1hcEJpbmRpbmc7CiAgICAgfTsKICAgICBWZWN0b3I8VGV4
dHVyZVVuaXRTdGF0ZT4gbV90ZXh0dXJlVW5pdHM7CiAgICAgdW5zaWduZWQgbG9uZyBtX2FjdGl2
ZVRleHR1cmVVbml0Owo=
</data>
<flag name="review"
          id="235795"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>