<?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>163255</bug_id>
          
          <creation_ts>2016-10-10 16:47:13 -0700</creation_ts>
          <short_desc>HasOwnPropertyCache needs to ref the UniquedStringImpls it sees</short_desc>
          <delta_ts>2023-02-08 07:27:10 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</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="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>ossy</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>toddcarson876</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1238616</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-10-10 16:47:13 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239002</commentid>
    <comment_count>1</comment_count>
      <attachid>291295</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-10-11 14:17:37 -0700</bug_when>
    <thetext>Created attachment 291295
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239003</commentid>
    <comment_count>2</comment_count>
      <attachid>291295</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-10-11 14:18:24 -0700</bug_when>
    <thetext>Comment on attachment 291295
patch

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

&gt; Source/JavaScriptCore/runtime/HasOwnPropertyCache.h:62
&gt; +        bitwise_cast&lt;HasOwnPropertyCache*&gt;(cache)-&gt;clear();

I&apos;ll make this a static_cast</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239005</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-11 14:19:23 -0700</bug_when>
    <thetext>Attachment 291295 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/HasOwnPropertyCache.h:116:  Missing space before {  [whitespace/braces] [5]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239006</commentid>
    <comment_count>4</comment_count>
      <attachid>291295</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2016-10-11 14:20:13 -0700</bug_when>
    <thetext>Comment on attachment 291295
patch

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

&gt; Source/JavaScriptCore/runtime/HasOwnPropertyCache.h:133
&gt;          memset(this, 0, sizeof(Entry) * size);

Could you just placement new instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239016</commentid>
    <comment_count>5</comment_count>
      <attachid>291295</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-10-11 14:33:01 -0700</bug_when>
    <thetext>Comment on attachment 291295
patch

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

&gt; Source/JavaScriptCore/runtime/HasOwnPropertyCache.h:123
&gt; +            bitwise_cast&lt;Entry*&gt;(this)[i].Entry::~Entry();

Pointer casting can use reinterpret_cast.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239047</commentid>
    <comment_count>6</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-10-11 15:30:07 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 291295 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=291295&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/HasOwnPropertyCache.h:123
&gt; &gt; +            bitwise_cast&lt;Entry*&gt;(this)[i].Entry::~Entry();
&gt; 
&gt; Pointer casting can use reinterpret_cast.

I prefer bitwise_cast for this still because it does the sizeof check. Which prevents  e from making mistakes like this:
unsigned bar = ...;
Foo* ptr = bitwise_cast&lt;Foo*&gt;(bar);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239090</commentid>
    <comment_count>7</comment_count>
      <attachid>291315</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-10-11 16:33:18 -0700</bug_when>
    <thetext>Created attachment 291315
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239092</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-11 16:35:52 -0700</bug_when>
    <thetext>Attachment 291315 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/HasOwnPropertyCache.h:118:  Missing space before {  [whitespace/braces] [5]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239148</commentid>
    <comment_count>9</comment_count>
      <attachid>291315</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-11 20:17:32 -0700</bug_when>
    <thetext>Comment on attachment 291315
patch for landing

Clearing flags on attachment: 291315

Committed r207186: &lt;http://trac.webkit.org/changeset/207186&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239149</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-11 20:17:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239224</commentid>
    <comment_count>11</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-10-12 02:32:43 -0700</bug_when>
    <thetext>This broke the build in several linux bots (GTK+, JSCOnly). Maybe something not supported by GCC 4.9?

https://build.webkit.org/builders/JSCOnly%20Linux%20ARMv7%20Thumb2%20Release/builds/2318/steps/compile-webkit/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239225</commentid>
    <comment_count>12</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-10-12 02:51:10 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; This broke the build in several linux bots (GTK+, JSCOnly). Maybe something
&gt; not supported by GCC 4.9?
&gt; 
&gt; https://build.webkit.org/builders/JSCOnly%20Linux%20ARMv7%20Thumb2%20Release/
&gt; builds/2318/steps/compile-webkit/logs/stdio

I also noticed this error, adding Entry::Entry(RefPtr&lt;UniquedStringImpl&gt;, StructureID, bool) constructor fixed the build for me. I&apos;m goning to land
it immediately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239226</commentid>
    <comment_count>13</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-10-12 02:59:00 -0700</bug_when>
    <thetext>Fix landed in http://trac.webkit.org/changeset/207213.


(In reply to comment #11)
&gt; This broke the build in several linux bots (GTK+, JSCOnly). Maybe something
&gt; not supported by GCC 4.9?
&gt; 
&gt; https://build.webkit.org/builders/JSCOnly%20Linux%20ARMv7%20Thumb2%20Release/
&gt; builds/2318/steps/compile-webkit/logs/stdio

But the question is why the GTK EWS was green? Do you have different
compiler on the EWS and buildbots? It would be great to keep them in sync.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239230</commentid>
    <comment_count>14</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-10-12 03:14:08 -0700</bug_when>
    <thetext>Additionally it was broken on Apple Windows and WinCairo bots too.

Is it a compiler bug in MSVC and GCC? Is C++11/14/17 allows the compiler to
generate Entry::Entry(RefPtr&lt;UniquedStringImpl&gt;, StructureID, bool) constructor?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239232</commentid>
    <comment_count>15</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-10-12 03:38:37 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Additionally it was broken on Apple Windows and WinCairo bots too.
&gt; 
&gt; Is it a compiler bug in MSVC and GCC? Is C++11/14/17 allows the compiler to
&gt; generate Entry::Entry(RefPtr&lt;UniquedStringImpl&gt;, StructureID, bool)
&gt; constructor?

I found the proper answer for this problem. In C++11 Entry isn&apos;t an aggregate
because of brace initializers of its members, but it is in C++14.

http://stackoverflow.com/questions/35891233/initializing-a-struct-with-aggregate-initialization-and-member-initializers

The problem here is that GCC 4.9 and VS 2015 
doesn&apos;t support NSDMIs for aggregates.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239234</commentid>
    <comment_count>16</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-10-12 04:04:35 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Fix landed in http://trac.webkit.org/changeset/207213.
&gt; 
&gt; 
&gt; (In reply to comment #11)
&gt; &gt; This broke the build in several linux bots (GTK+, JSCOnly). Maybe something
&gt; &gt; not supported by GCC 4.9?
&gt; &gt; 
&gt; &gt; https://build.webkit.org/builders/JSCOnly%20Linux%20ARMv7%20Thumb2%20Release/
&gt; &gt; builds/2318/steps/compile-webkit/logs/stdio
&gt; 
&gt; But the question is why the GTK EWS was green? Do you have different
&gt; compiler on the EWS and buildbots?

Yes, unfortunately.

&gt; It would be great to keep them in sync.

Agree</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239863</commentid>
    <comment_count>17</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-10-13 11:35:31 -0700</bug_when>
    <thetext>I believe the build fix added reference count churn:

+        Entry(RefPtr&lt;UniquedStringImpl&gt; impl, StructureID structureID, bool result)
+            : impl(impl)

This is not the same thing as the automatically generated behavior, which can do a move if passed a RefPtr&amp;&amp;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239865</commentid>
    <comment_count>18</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-10-13 11:41:03 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; I believe the build fix added reference count churn:
&gt; 
&gt; +        Entry(RefPtr&lt;UniquedStringImpl&gt; impl, StructureID structureID, bool
&gt; result)
&gt; +            : impl(impl)
&gt; 
&gt; This is not the same thing as the automatically generated behavior, which
&gt; can do a move if passed a RefPtr&amp;&amp;.

Yeah I believe it should always be passed a RefPtr&amp;&amp;. This should be an easy fix.

Does the `StructName { ... }` syntax call the constructor?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239889</commentid>
    <comment_count>19</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-10-13 12:06:11 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; Does the `StructName { ... }` syntax call the constructor?

Yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239918</commentid>
    <comment_count>20</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-10-13 12:56:09 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (In reply to comment #18)
&gt; &gt; Does the `StructName { ... }` syntax call the constructor?
&gt; 
&gt; Yes.

Interesting. I had thought the &quot;{ ... }&quot; just individually constructs each field.
Do you know what the rules are for it calling a constructor? Must there be a constructor that matches the types? Like
StructName{ T1,...,TN }
Calls constructor of type
ConstructorTye(T1, ..., TN)
?
(Ignoring type conversions, etc)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239925</commentid>
    <comment_count>21</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-10-13 13:05:57 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (In reply to comment #19)
&gt; &gt; (In reply to comment #18)
&gt; &gt; &gt; Does the `StructName { ... }` syntax call the constructor?
&gt; &gt; 
&gt; &gt; Yes.
&gt; 
&gt; Interesting. I had thought the &quot;{ ... }&quot; just individually constructs each
&gt; field.

Only if there is no constructor.

&gt; Do you know what the rules are for it calling a constructor?

An oversimplification: direct initialization of the data members with that syntax works only if there are no constructors. For the full story, C++ reference material recommended. I normally use cppreference.com to look things up.

 Must there be a
&gt; constructor that matches the types? Like
&gt; StructName{ T1,...,TN }
&gt; Calls constructor of type
&gt; ConstructorTye(T1, ..., TN)
&gt; ?
&gt; (Ignoring type conversions, etc)

Yes. In fact, the ClassName { } syntax does not allow many type conversions that the ClassName ( ) syntax performs, which is another benefit of using it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1240623</commentid>
    <comment_count>22</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-10-15 13:33:06 -0700</bug_when>
    <thetext>I&apos;ve opened this bug to go back to move semantics:
https://bugs.webkit.org/show_bug.cgi?id=163490</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1240624</commentid>
    <comment_count>23</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-10-15 13:35:10 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; (In reply to comment #20)
&gt; &gt; (In reply to comment #19)
&gt; &gt; &gt; (In reply to comment #18)
&gt; &gt; &gt; &gt; Does the `StructName { ... }` syntax call the constructor?
&gt; &gt; &gt; 
&gt; &gt; &gt; Yes.
&gt; &gt; 
&gt; &gt; Interesting. I had thought the &quot;{ ... }&quot; just individually constructs each
&gt; &gt; field.
&gt; 
&gt; Only if there is no constructor.
&gt; 
&gt; &gt; Do you know what the rules are for it calling a constructor?
&gt; 
&gt; An oversimplification: direct initialization of the data members with that
&gt; syntax works only if there are no constructors. For the full story, C++
&gt; reference material recommended. I normally use cppreference.com to look
&gt; things up.
Interesting. I&apos;ll read about this. It&apos;s surprising to me because I had just assumed the syntax was more or less shorthand for initializing each field. That was a bad assumption on my part. 
&gt; 
&gt;  Must there be a
&gt; &gt; constructor that matches the types? Like
&gt; &gt; StructName{ T1,...,TN }
&gt; &gt; Calls constructor of type
&gt; &gt; ConstructorTye(T1, ..., TN)
&gt; &gt; ?
&gt; &gt; (Ignoring type conversions, etc)
&gt; 
&gt; Yes. In fact, the ClassName { } syntax does not allow many type conversions
&gt; that the ClassName ( ) syntax performs, which is another benefit of using it.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291295</attachid>
            <date>2016-10-11 14:17:37 -0700</date>
            <delta_ts>2016-10-11 16:33:18 -0700</delta_ts>
            <desc>patch</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>3589</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA3MTY0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBA
CisyMDE2LTEwLTExICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IEhhc093blByb3BlcnR5Q2FjaGUgbmVlZHMgdG8gcmVmIHRoZSBVbmlxdWVkU3RyaW5nSW1wbHMg
aXQgc2VlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTYzMjU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlIGNhY2hlIG5lZWRzIHRvIGJlIHJlc3BvbnNpYmxlIGZvciBlbnN1cmluZyB0aGF0IHRoaW5n
cworICAgICAgICBpbiB0aGUgY2FjaGUgc3RheSBhbGl2ZS4gQmVmb3JlLCBpdCB3YXNuJ3QgZG9p
bmcgdGhpcywgYW5kCisgICAgICAgIHRoYXQgd2FzIHdyb25nLgorCisgICAgICAgICogcnVudGlt
ZS9IYXNPd25Qcm9wZXJ0eUNhY2hlLmg6CisgICAgICAgIChKU0M6Okhhc093blByb3BlcnR5Q2Fj
aGU6OkVudHJ5OjpvcGVyYXRvcj0pOgorICAgICAgICAoSlNDOjpIYXNPd25Qcm9wZXJ0eUNhY2hl
OjpvcGVyYXRvciBkZWxldGUpOgorICAgICAgICAoSlNDOjpIYXNPd25Qcm9wZXJ0eUNhY2hlOjpj
cmVhdGUpOgorICAgICAgICAoSlNDOjpIYXNPd25Qcm9wZXJ0eUNhY2hlOjpnZXQpOgorICAgICAg
ICAoSlNDOjpIYXNPd25Qcm9wZXJ0eUNhY2hlOjp0cnlBZGQpOgorICAgICAgICAoSlNDOjpIYXNP
d25Qcm9wZXJ0eUNhY2hlOjpjbGVhcik6CisgICAgICAgIChKU0M6Okhhc093blByb3BlcnR5Q2Fj
aGU6Onplcm9CdWZmZXIpOgorCiAyMDE2LTEwLTEwICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBs
ZS5jb20+CiAKICAgICAgICAgQWlyIHNob3VsZCBiZSBhYmxlIHRvIHJlcGxhY2UgY29uc3RhbnQg
bWF0ZXJpYWxpemF0aW9ucyB3aXRoIGFkZHMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0hhc093blByb3BlcnR5Q2FjaGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9IYXNPd25Qcm9wZXJ0eUNhY2hlLmgJKHJldmlzaW9uIDIwNzE1MykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0hhc093blByb3BlcnR5Q2FjaGUuaAko
d29ya2luZyBjb3B5KQpAQCAtNDIsNyArNDIsMTUgQEAgcHVibGljOgogICAgICAgICBzdGF0aWMg
cHRyZGlmZl90IG9mZnNldE9mSW1wbCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihFbnRyeSwg
aW1wbCk7IH0KICAgICAgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZlJlc3VsdCgpIHsgcmV0
dXJuIE9CSkVDVF9PRkZTRVRPRihFbnRyeSwgcmVzdWx0KTsgfQogCi0gICAgICAgIFVuaXF1ZWRT
dHJpbmdJbXBsKiBpbXBsOworICAgICAgICBFbnRyeSYgb3BlcmF0b3I9KEVudHJ5JiYgb3RoZXIp
CisgICAgICAgIHsKKyAgICAgICAgICAgIGltcGwgPSBXVEZNb3ZlKG90aGVyLmltcGwpOworICAg
ICAgICAgICAgc3RydWN0dXJlSUQgPSBvdGhlci5zdHJ1Y3R1cmVJRDsKKyAgICAgICAgICAgIHJl
c3VsdCA9IG90aGVyLnJlc3VsdDsKKyAgICAgICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgICAg
fQorCisgICAgICAgIFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4gaW1wbDsKICAgICAgICAgU3Ry
dWN0dXJlSUQgc3RydWN0dXJlSUQ7CiAgICAgICAgIGJvb2wgcmVzdWx0OwogICAgIH07CkBAIC01
MSw2ICs1OSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgb3BlcmF0b3IgZGVsZXRlKHZvaWQqIGNh
Y2hlKQogICAgIHsKKyAgICAgICAgYml0d2lzZV9jYXN0PEhhc093blByb3BlcnR5Q2FjaGUqPihj
YWNoZSktPmNsZWFyKCk7CiAgICAgICAgIGZhc3RGcmVlKGNhY2hlKTsKICAgICB9CiAKQEAgLTU4
LDcgKzY3LDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgc2l6ZV90IGFsbG9jYXRpb25TaXpl
ID0gc2l6ZW9mKEVudHJ5KSAqIHNpemU7CiAgICAgICAgIEhhc093blByb3BlcnR5Q2FjaGUqIHJl
c3VsdCA9IHN0YXRpY19jYXN0PEhhc093blByb3BlcnR5Q2FjaGUqPihmYXN0TWFsbG9jKGFsbG9j
YXRpb25TaXplKSk7Ci0gICAgICAgIHJlc3VsdC0+Y2xlYXIoKTsKKyAgICAgICAgcmVzdWx0LT56
ZXJvQnVmZmVyKCk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCkBAIC03Myw3ICs4
Miw3IEBAIHB1YmxpYzoKICAgICAgICAgU3RydWN0dXJlSUQgaWQgPSBzdHJ1Y3R1cmUtPmlkKCk7
CiAgICAgICAgIHVpbnQzMl90IGluZGV4ID0gSGFzT3duUHJvcGVydHlDYWNoZTo6aGFzaChpZCwg
aW1wbCkgJiBtYXNrOwogICAgICAgICBFbnRyeSYgZW50cnkgPSBiaXR3aXNlX2Nhc3Q8RW50cnkq
Pih0aGlzKVtpbmRleF07Ci0gICAgICAgIGlmIChlbnRyeS5zdHJ1Y3R1cmVJRCA9PSBpZCAmJiBl
bnRyeS5pbXBsID09IGltcGwpCisgICAgICAgIGlmIChlbnRyeS5zdHJ1Y3R1cmVJRCA9PSBpZCAm
JiBlbnRyeS5pbXBsLmdldCgpID09IGltcGwpCiAgICAgICAgICAgICByZXR1cm4gZW50cnkucmVz
dWx0OwogICAgICAgICByZXR1cm4gTnVsbG9wdDsKICAgICB9CkBAIC0xMDQsMTIgKzExMywyMyBA
QCBwdWJsaWM6CiAgICAgICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogaW1wbCA9IHByb3BOYW1l
LnVpZCgpOwogICAgICAgICAgICAgU3RydWN0dXJlSUQgaWQgPSBzdHJ1Y3R1cmUtPmlkKCk7CiAg
ICAgICAgICAgICB1aW50MzJfdCBpbmRleCA9IEhhc093blByb3BlcnR5Q2FjaGU6Omhhc2goaWQs
IGltcGwpICYgbWFzazsKLSAgICAgICAgICAgIGJpdHdpc2VfY2FzdDxFbnRyeSo+KHRoaXMpW2lu
ZGV4XSA9IEVudHJ5eyBpbXBsLCBpZCwgcmVzdWx0IH07CisgICAgICAgICAgICBiaXR3aXNlX2Nh
c3Q8RW50cnkqPih0aGlzKVtpbmRleF0gPSBFbnRyeXsgUmVmUHRyPFVuaXF1ZWRTdHJpbmdJbXBs
PihpbXBsKSwgaWQsIHJlc3VsdCB9OwogICAgICAgICB9CiAgICAgfQogCiAgICAgdm9pZCBjbGVh
cigpCiAgICAgeworICAgICAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQor
ICAgICAgICAgICAgYml0d2lzZV9jYXN0PEVudHJ5Kj4odGhpcylbaV0uRW50cnk6On5FbnRyeSgp
OworCisgICAgICAgIHplcm9CdWZmZXIoKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgdm9pZCB6
ZXJvQnVmZmVyKCkKKyAgICB7CisgICAgICAgIC8vIE5vdGUgdGhhdCBtZW1zZXR0aW5nIGEgUmVm
UHRyPFQ+IHRvIHplcm8gcHV0cyBpdCBpbnRvIHRoZSBzYW1lIHN0YXRlCisgICAgICAgIC8vIGFz
IGlmIHdlIGNvbnN0cnVjdGVkIGl0IHVzaW5nIGl0cyBkZWZhdWx0IGNvbnN0cnVjdG9yLgogICAg
ICAgICBtZW1zZXQodGhpcywgMCwgc2l6ZW9mKEVudHJ5KSAqIHNpemUpOwogICAgIH0KIH07Cg==
</data>
<flag name="review"
          id="314432"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291315</attachid>
            <date>2016-10-11 16:33:18 -0700</date>
            <delta_ts>2016-10-11 20:17:32 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>3735</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA3MTY0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBA
CisyMDE2LTEwLTExICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IEhhc093blByb3BlcnR5Q2FjaGUgbmVlZHMgdG8gcmVmIHRoZSBVbmlxdWVkU3RyaW5nSW1wbHMg
aXQgc2VlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTYzMjU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCisKKyAgICAgICAg
VGhlIGNhY2hlIG5lZWRzIHRvIGJlIHJlc3BvbnNpYmxlIGZvciBlbnN1cmluZyB0aGF0IHRoaW5n
cworICAgICAgICBpbiB0aGUgY2FjaGUgc3RheSBhbGl2ZS4gQmVmb3JlLCBpdCB3YXNuJ3QgZG9p
bmcgdGhpcywgYW5kCisgICAgICAgIHRoYXQgd2FzIHdyb25nLgorCisgICAgICAgICogcnVudGlt
ZS9IYXNPd25Qcm9wZXJ0eUNhY2hlLmg6CisgICAgICAgIChKU0M6Okhhc093blByb3BlcnR5Q2Fj
aGU6OkVudHJ5OjpvcGVyYXRvcj0pOgorICAgICAgICAoSlNDOjpIYXNPd25Qcm9wZXJ0eUNhY2hl
OjpvcGVyYXRvciBkZWxldGUpOgorICAgICAgICAoSlNDOjpIYXNPd25Qcm9wZXJ0eUNhY2hlOjpj
cmVhdGUpOgorICAgICAgICAoSlNDOjpIYXNPd25Qcm9wZXJ0eUNhY2hlOjpnZXQpOgorICAgICAg
ICAoSlNDOjpIYXNPd25Qcm9wZXJ0eUNhY2hlOjp0cnlBZGQpOgorICAgICAgICAoSlNDOjpIYXNP
d25Qcm9wZXJ0eUNhY2hlOjpjbGVhcik6CisgICAgICAgIChKU0M6Okhhc093blByb3BlcnR5Q2Fj
aGU6Onplcm9CdWZmZXIpOgorCiAyMDE2LTEwLTEwICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBs
ZS5jb20+CiAKICAgICAgICAgQWlyIHNob3VsZCBiZSBhYmxlIHRvIHJlcGxhY2UgY29uc3RhbnQg
bWF0ZXJpYWxpemF0aW9ucyB3aXRoIGFkZHMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0hhc093blByb3BlcnR5Q2FjaGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9IYXNPd25Qcm9wZXJ0eUNhY2hlLmgJKHJldmlzaW9uIDIwNzE1MykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0hhc093blByb3BlcnR5Q2FjaGUuaAko
d29ya2luZyBjb3B5KQpAQCAtNDIsMTUgKzQyLDI2IEBAIHB1YmxpYzoKICAgICAgICAgc3RhdGlj
IHB0cmRpZmZfdCBvZmZzZXRPZkltcGwoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRW50cnks
IGltcGwpOyB9CiAgICAgICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZSZXN1bHQoKSB7IHJl
dHVybiBPQkpFQ1RfT0ZGU0VUT0YoRW50cnksIHJlc3VsdCk7IH0KIAotICAgICAgICBVbmlxdWVk
U3RyaW5nSW1wbCogaW1wbDsKLSAgICAgICAgU3RydWN0dXJlSUQgc3RydWN0dXJlSUQ7Ci0gICAg
ICAgIGJvb2wgcmVzdWx0OworICAgICAgICBFbnRyeSgpID0gZGVmYXVsdDsKKworICAgICAgICBF
bnRyeSYgb3BlcmF0b3I9KEVudHJ5JiYgb3RoZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlt
cGwgPSBXVEZNb3ZlKG90aGVyLmltcGwpOworICAgICAgICAgICAgc3RydWN0dXJlSUQgPSBvdGhl
ci5zdHJ1Y3R1cmVJRDsKKyAgICAgICAgICAgIHJlc3VsdCA9IG90aGVyLnJlc3VsdDsKKyAgICAg
ICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgICAgfQorCisgICAgICAgIFJlZlB0cjxVbmlxdWVk
U3RyaW5nSW1wbD4gaW1wbCB7IH07CisgICAgICAgIFN0cnVjdHVyZUlEIHN0cnVjdHVyZUlEIHsg
MCB9OworICAgICAgICBib29sIHJlc3VsdCB7IGZhbHNlIH07CiAgICAgfTsKIAogICAgIEhhc093
blByb3BlcnR5Q2FjaGUoKSA9IGRlbGV0ZTsKIAogICAgIHZvaWQgb3BlcmF0b3IgZGVsZXRlKHZv
aWQqIGNhY2hlKQogICAgIHsKKyAgICAgICAgc3RhdGljX2Nhc3Q8SGFzT3duUHJvcGVydHlDYWNo
ZSo+KGNhY2hlKS0+Y2xlYXIoKTsKICAgICAgICAgZmFzdEZyZWUoY2FjaGUpOwogICAgIH0KIApA
QCAtNTgsNyArNjksNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBzaXplX3QgYWxsb2NhdGlv
blNpemUgPSBzaXplb2YoRW50cnkpICogc2l6ZTsKICAgICAgICAgSGFzT3duUHJvcGVydHlDYWNo
ZSogcmVzdWx0ID0gc3RhdGljX2Nhc3Q8SGFzT3duUHJvcGVydHlDYWNoZSo+KGZhc3RNYWxsb2Mo
YWxsb2NhdGlvblNpemUpKTsKLSAgICAgICAgcmVzdWx0LT5jbGVhcigpOworICAgICAgICByZXN1
bHQtPmNsZWFyQnVmZmVyKCk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCkBAIC03
Myw3ICs4NCw3IEBAIHB1YmxpYzoKICAgICAgICAgU3RydWN0dXJlSUQgaWQgPSBzdHJ1Y3R1cmUt
PmlkKCk7CiAgICAgICAgIHVpbnQzMl90IGluZGV4ID0gSGFzT3duUHJvcGVydHlDYWNoZTo6aGFz
aChpZCwgaW1wbCkgJiBtYXNrOwogICAgICAgICBFbnRyeSYgZW50cnkgPSBiaXR3aXNlX2Nhc3Q8
RW50cnkqPih0aGlzKVtpbmRleF07Ci0gICAgICAgIGlmIChlbnRyeS5zdHJ1Y3R1cmVJRCA9PSBp
ZCAmJiBlbnRyeS5pbXBsID09IGltcGwpCisgICAgICAgIGlmIChlbnRyeS5zdHJ1Y3R1cmVJRCA9
PSBpZCAmJiBlbnRyeS5pbXBsLmdldCgpID09IGltcGwpCiAgICAgICAgICAgICByZXR1cm4gZW50
cnkucmVzdWx0OwogICAgICAgICByZXR1cm4gTnVsbG9wdDsKICAgICB9CkBAIC0xMDQsMTMgKzEx
NSwyNSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogaW1wbCA9IHBy
b3BOYW1lLnVpZCgpOwogICAgICAgICAgICAgU3RydWN0dXJlSUQgaWQgPSBzdHJ1Y3R1cmUtPmlk
KCk7CiAgICAgICAgICAgICB1aW50MzJfdCBpbmRleCA9IEhhc093blByb3BlcnR5Q2FjaGU6Omhh
c2goaWQsIGltcGwpICYgbWFzazsKLSAgICAgICAgICAgIGJpdHdpc2VfY2FzdDxFbnRyeSo+KHRo
aXMpW2luZGV4XSA9IEVudHJ5eyBpbXBsLCBpZCwgcmVzdWx0IH07CisgICAgICAgICAgICBiaXR3
aXNlX2Nhc3Q8RW50cnkqPih0aGlzKVtpbmRleF0gPSBFbnRyeXsgUmVmUHRyPFVuaXF1ZWRTdHJp
bmdJbXBsPihpbXBsKSwgaWQsIHJlc3VsdCB9OwogICAgICAgICB9CiAgICAgfQogCiAgICAgdm9p
ZCBjbGVhcigpCiAgICAgewotICAgICAgICBtZW1zZXQodGhpcywgMCwgc2l6ZW9mKEVudHJ5KSAq
IHNpemUpOworICAgICAgICBFbnRyeSogYnVmZmVyID0gYml0d2lzZV9jYXN0PEVudHJ5Kj4odGhp
cyk7CisgICAgICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCisgICAgICAg
ICAgICBidWZmZXJbaV0uRW50cnk6On5FbnRyeSgpOworCisgICAgICAgIGNsZWFyQnVmZmVyKCk7
CisgICAgfQorCitwcml2YXRlOgorICAgIHZvaWQgY2xlYXJCdWZmZXIoKQorICAgIHsKKyAgICAg
ICAgRW50cnkqIGJ1ZmZlciA9IGJpdHdpc2VfY2FzdDxFbnRyeSo+KHRoaXMpOworICAgICAgICBm
b3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQorICAgICAgICAgICAgbmV3ICgmYnVm
ZmVyW2ldKSBFbnRyeSgpOwogICAgIH0KIH07CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>