<?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>113086</bug_id>
          
          <creation_ts>2013-03-22 11:26:06 -0700</creation_ts>
          <short_desc>opaqueJSClassData should be cached on JSGlobalObject, not the JSGlobalData</short_desc>
          <delta_ts>2013-03-22 21:17:03 -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>JavaScriptCore</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>buildbot</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>861703</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-03-22 11:26:06 -0700</bug_when>
    <thetext>opaqueJSClassData stores cached prototypes for JSClassRefs in the C API. It doesn&apos;t make sense to share these prototypes within a JSGlobalData across JSGlobalObjects, and in fact doing so will cause a leak of the original JSGlobalObject that these prototypes were created in. Therefore we should move this cache to JSGlobalObject where it belongs and where it won&apos;t cause memory leaks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861863</commentid>
    <comment_count>1</comment_count>
      <attachid>194635</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-03-22 14:52:02 -0700</bug_when>
    <thetext>Created attachment 194635
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861865</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-03-22 14:52:33 -0700</bug_when>
    <thetext>&lt;rdar://problem/12269677&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861896</commentid>
    <comment_count>3</comment_count>
      <attachid>194635</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-03-22 15:18:37 -0700</bug_when>
    <thetext>Comment on attachment 194635
Patch

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

r=me

&gt; Source/JavaScriptCore/API/tests/testapi.c:148
&gt; +    if (!n) {

So Scheme-y!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861906</commentid>
    <comment_count>4</comment_count>
      <attachid>194635</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-22 15:26:32 -0700</bug_when>
    <thetext>Comment on attachment 194635
Patch

Attachment 194635 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/17293113</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861979</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-03-22 16:52:20 -0700</bug_when>
    <thetext>Committed r146682: &lt;http://trac.webkit.org/changeset/146682&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862097</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-22 20:12:53 -0700</bug_when>
    <thetext>This patch caused multiple build failures on Windows.

The last compilation error we&apos;re seeing is:

http://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/46467/steps/compile-webkit/logs/stdio

8&gt;####### COMPILING 1 FILES USING AT MOST 8 PARALLEL INSTANCES OF cl.exe ###########
8&gt;testapi.c
8&gt;..\..\API\tests\testapi.c(146) : error C2332: &apos;class&apos; : missing tag name
8&gt;..\..\API\tests\testapi.c(146) : error C2236: unexpected &apos;class&apos; &apos;&lt;unnamed-tag&gt;&apos;. Did you forget a &apos;;&apos;?
8&gt;..\..\API\tests\testapi.c(149) : error C2332: &apos;class&apos; : missing tag name
8&gt;..\..\API\tests\testapi.c(149) : error C2226: syntax error : unexpected type &apos;&lt;unnamed-tag&gt;&apos;
8&gt;..\..\API\tests\testapi.c(156) : error C2332: &apos;class&apos; : missing tag name
8&gt;..\..\API\tests\testapi.c(156) : error C2226: syntax error : unexpected type &apos;&lt;unnamed-tag&gt;&apos;
8&gt;..\..\API\tests\testapi.c(169) : error C2664: &apos;nestedAllocateObject&apos; : cannot convert parameter 2 from &apos;JSClassRef&apos; to &apos;&apos;
8&gt;        No constructor could take the source type, or constructor overload resolution was ambiguous</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862099</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-22 20:15:47 -0700</bug_when>
    <thetext>I&apos;ve spent sometime looking into this but I couldn&apos;t figure out how to fix so I&apos;ve wrapped inside !OS(WIN) for now :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862100</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-22 20:16:06 -0700</bug_when>
    <thetext>in http://trac.webkit.org/changeset/146707.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862117</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-22 20:46:14 -0700</bug_when>
    <thetext>It seems like this patch also regressed jscore-test?

http://build.webkit.org/builders/Apple%20MountainLion%20Release%20WK2%20%28Tests%29/builds/7233

FAIL: Failed to finalize the original object after the first GC.
PASS: Infinite prototype chain does not occur.
PASS: A cycle in a prototype chain can&apos;t be created.
FAIL: Some tests failed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862119</commentid>
    <comment_count>10</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-03-22 20:58:08 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; It seems like this patch also regressed jscore-test?
&gt; 
&gt; http://build.webkit.org/builders/Apple%20MountainLion%20Release%20WK2%20%28Tests%29/builds/7233
&gt; 
&gt; FAIL: Failed to finalize the original object after the first GC.
&gt; PASS: Infinite prototype chain does not occur.
&gt; PASS: A cycle in a prototype chain can&apos;t be created.
&gt; FAIL: Some tests failed.

Hmm. This could be due to my hack around the conservative GC not working on other platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862120</commentid>
    <comment_count>11</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-03-22 20:59:45 -0700</bug_when>
    <thetext>&gt; Hmm. This could be due to my hack around the conservative GC not working on other platforms.

And by &quot;not working&quot; I mean it keeps objects alive that are actually dead due to its conservatism.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862121</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-22 20:59:59 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; It seems like this patch also regressed jscore-test?
&gt; &gt; 
&gt; &gt; http://build.webkit.org/builders/Apple%20MountainLion%20Release%20WK2%20%28Tests%29/builds/7233
&gt; &gt; 
&gt; &gt; FAIL: Failed to finalize the original object after the first GC.
&gt; &gt; PASS: Infinite prototype chain does not occur.
&gt; &gt; PASS: A cycle in a prototype chain can&apos;t be created.
&gt; &gt; FAIL: Some tests failed.
&gt; 
&gt; Hmm. This could be due to my hack around the conservative GC not working on other platforms.

This is Mountain Lion though. Should we revert the patch for now? I don&apos;t know how we can suppress JS test failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862124</commentid>
    <comment_count>13</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-03-22 21:04:56 -0700</bug_when>
    <thetext>&gt; This is Mountain Lion though. Should we revert the patch for now? I don&apos;t know how we can suppress JS test failures.

Sorry I should be more clear. I&apos;m pretty sure the fix itself is correct. I believe it&apos;s the test that&apos;s flawed. It&apos;s not that it&apos;s Mountain Lion specifically, it&apos;s just that the conservative GC might keep things alive depending on how things are compiled. I tried to hack around this issue in the test, but it seems to not be working on whatever bot is running the tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862125</commentid>
    <comment_count>14</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-22 21:06:13 -0700</bug_when>
    <thetext>I see. Thanks for the clarification. What should we do about the failing tests though?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862126</commentid>
    <comment_count>15</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-03-22 21:10:56 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; I see. Thanks for the clarification. What should we do about the failing tests though?

Hmm good question. I&apos;d say roll out the test. I got this test working locally, so I&apos;m pretty confident in the correctness of the fix itself. Maybe we should file a bug to fix the test and add it back.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862129</commentid>
    <comment_count>16</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-22 21:17:03 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; I see. Thanks for the clarification. What should we do about the failing tests though?
&gt; 
&gt; Hmm good question. I&apos;d say roll out the test. I got this test working locally, so I&apos;m pretty confident in the correctness of the fix itself. Maybe we should file a bug to fix the test and add it back.

Okay. I&apos;ve posted a patch to remove the test on https://bugs.webkit.org/show_bug.cgi?id=113125. Could you take a look at it?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194635</attachid>
            <date>2013-03-22 14:52:02 -0700</date>
            <delta_ts>2013-03-22 15:26:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-113086-20130322144750.patch</filename>
            <type>text/plain</type>
            <size>10560</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ2NjU5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBA
CisyMDEzLTAzLTIyICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgb3BhcXVlSlNDbGFzc0RhdGEgc2hvdWxkIGJlIGNhY2hlZCBvbiBKU0dsb2JhbE9i
amVjdCwgbm90IHRoZSBKU0dsb2JhbERhdGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExMzA4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIG9wYXF1ZUpTQ2xhc3NEYXRhIHN0b3JlcyBjYWNoZWQgcHJvdG90
eXBlcyBmb3IgSlNDbGFzc1JlZnMgaW4gdGhlIEMgQVBJLiBJdCBkb2Vzbid0IG1ha2Ugc2Vuc2Ug
dG8gCisgICAgICAgIHNoYXJlIHRoZXNlIHByb3RvdHlwZXMgd2l0aGluIGEgSlNHbG9iYWxEYXRh
IGFjcm9zcyBKU0dsb2JhbE9iamVjdHMsIGFuZCBpbiBmYWN0IGRvaW5nIHNvIHdpbGwgY2F1c2Ug
CisgICAgICAgIGEgbGVhayBvZiB0aGUgb3JpZ2luYWwgSlNHbG9iYWxPYmplY3QgdGhhdCB0aGVz
ZSBwcm90b3R5cGVzIHdlcmUgY3JlYXRlZCBpbi4gVGhlcmVmb3JlIHdlIHNob3VsZCBtb3ZlIAor
ICAgICAgICB0aGlzIGNhY2hlIHRvIEpTR2xvYmFsT2JqZWN0IHdoZXJlIGl0IGJlbG9uZ3MgYW5k
IHdoZXJlIGl0IHdvbid0IGNhdXNlIG1lbW9yeSBsZWFrcy4KKworICAgICAgICAqIEFQSS9KU0Jh
c2UuY3BwOiBOZWVkZWQgdG8gYWRkIGFuIGV4dGVybiAiQyIgc28gdGhhdCB0ZXN0YXBpLmMgY2Fu
IHVzZSB0aGUgc3VwZXIgc2VjcmV0IEdDIGZ1bmN0aW9uLgorICAgICAgICAqIEFQSS9KU0NsYXNz
UmVmLmNwcDogV2Ugbm93IGdyYWIgdGhlIGNhY2hlZCBjb250ZXh0IGRhdGEgZnJvbSB0aGUgZ2xv
YmFsIG9iamVjdCByYXRoZXIgdGhhbiB0aGUgZ2xvYmFsIGRhdGEuCisgICAgICAgIChPcGFxdWVK
U0NsYXNzOjpjb250ZXh0RGF0YSk6CisgICAgICAgICogQVBJL0pTQ2xhc3NSZWYuaDogUmVtb3Zl
IHRoaXMgaGVhZGVyIGJlY2F1c2UgaXQncyB1bm5lY2Vzc2FyeSBhbmQgY2F1c2VzIGNpcmN1bGFy
IGRlcGVuZGVuY2llcy4KKyAgICAgICAgKiBBUEkvdGVzdHMvdGVzdGFwaS5jOiBBZGRlZCBhIG5l
dyB0ZXN0IHRoYXQgbWFrZXMgc3VyZSB0aGF0IHVzaW5nIHRoZSBzYW1lIEpTQ2xhc3NSZWYgaW4g
dHdvIGRpZmZlcmVudCBjb250ZXh0cworICAgICAgICBkb2Vzbid0IGNhdXNlIGxlYWtzIG9mIHRo
ZSBvcmlnaW5hbCBnbG9iYWwgb2JqZWN0LgorICAgICAgICAobGVha0ZpbmFsaXplKToKKyAgICAg
ICAgKG5lc3RlZEFsbG9jYXRlT2JqZWN0KTogVGhpcyBpcyBhIGhhY2sgdG8gYnlwYXNzIHRoZSBj
b25zZXJ2YXRpdmUgc2NhbiBvZiB0aGUgR0MsIHdoaWNoIHdhcyB1bm5lY2Vzc2FyaWx5IG1hcmtp
bmcKKyAgICAgICAgb2JqZWN0cyBhbmQga2VlcGluZyB0aGVtIGFsaXZlLCBydWluaW5nIHRoZSB0
ZXN0IHJlc3VsdC4KKyAgICAgICAgKHRlc3RMZWFraW5nUHJvdG90eXBlc0Fjcm9zc0NvbnRleHRz
KToKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIEFQSS90ZXN0cy90ZXN0YXBpLm1tOiBleHRl
cm4gIkMiIHRoaXMgc28gd2UgY2FuIGNvbnRpbnVlIHVzaW5nIGl0IGhlcmUuCisgICAgICAgICog
cnVudGltZS9KU0dsb2JhbERhdGEuY3BwOiBSZW1vdmUgSlNDbGFzc1JlZiByZWxhdGVkIHN0dWZm
LgorICAgICAgICAoSlNDOjpKU0dsb2JhbERhdGE6On5KU0dsb2JhbERhdGEpOgorICAgICAgICAq
IHJ1bnRpbWUvSlNHbG9iYWxEYXRhLmg6CisgICAgICAgIChKU0dsb2JhbERhdGEpOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDogQWRkIHRoZSBzdHVmZiB0aGF0IEpTR2xvYmFs
RGF0YSBoYWQuIFdlIGFkZCBpdCB0byBKU0dsb2JhbE9iamVjdFJhcmVEYXRhIHNvIHRoYXQgCisg
ICAgICAgIGNsaWVudHMgd2hvIGRvbid0IHVzZSB0aGUgQyBBUEkgZG9uJ3QgaGF2ZSB0byBwYXkg
dGhlIG1lbW9yeSBjb3N0IG9mIHRoaXMgZXh0cmEgSGFzaE1hcC4KKyAgICAgICAgKEpTR2xvYmFs
T2JqZWN0KToKKyAgICAgICAgKEpTR2xvYmFsT2JqZWN0UmFyZURhdGEpOgorICAgICAgICAoSlND
OjpKU0dsb2JhbE9iamVjdDo6b3BhcXVlSlNDbGFzc0RhdGEpOgorCiAyMDEzLTAzLTIyICBGaWxp
cCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgREZHIGZvbGRpbmcgb2YgUHV0
QnlJZCB0byBTaW1wbGVSZXBsYWNlIHNob3VsZCBjb25zaWRlciB0aGUgc3BlY2lhbGl6ZWQgZnVu
Y3Rpb24gY2FzZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Jhc2UuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNCYXNlLmNwcAkocmV2aXNp
b24gMTQ2NjI0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Jhc2UuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMTEsNyArMTExLDcgQEAgdm9pZCBKU1JlcG9ydEV4dHJhTWVtb3J5Q29z
dChKU0NvbnRleHRSZQogICAgIGV4ZWMtPmdsb2JhbERhdGEoKS5oZWFwLnJlcG9ydEV4dHJhTWVt
b3J5Q29zdChzaXplKTsKIH0KIAotSlNfRVhQT1JUIHZvaWQgSlNTeW5jaHJvbm91c0dhcmJhZ2VD
b2xsZWN0Rm9yRGVidWdnaW5nKEpTQ29udGV4dFJlZik7CitleHRlcm4gIkMiIEpTX0VYUE9SVCB2
b2lkIEpTU3luY2hyb25vdXNHYXJiYWdlQ29sbGVjdEZvckRlYnVnZ2luZyhKU0NvbnRleHRSZWYp
OwogCiB2b2lkIEpTU3luY2hyb25vdXNHYXJiYWdlQ29sbGVjdEZvckRlYnVnZ2luZyhKU0NvbnRl
eHRSZWYgY3R4KQogewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVm
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYu
Y3BwCShyZXZpc2lvbiAxNDY2MjQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xh
c3NSZWYuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTEsNyArMTUxLDcgQEAgT3BhcXVlSlNDbGFz
c0NvbnRleHREYXRhOjpPcGFxdWVKU0NsYXNzQwogCiBPcGFxdWVKU0NsYXNzQ29udGV4dERhdGEm
IE9wYXF1ZUpTQ2xhc3M6OmNvbnRleHREYXRhKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBPd25Q
dHI8T3BhcXVlSlNDbGFzc0NvbnRleHREYXRhPiYgY29udGV4dERhdGEgPSBleGVjLT5nbG9iYWxE
YXRhKCkub3BhcXVlSlNDbGFzc0RhdGEuYWRkKHRoaXMsIG51bGxwdHIpLml0ZXJhdG9yLT52YWx1
ZTsKKyAgICBPd25QdHI8T3BhcXVlSlNDbGFzc0NvbnRleHREYXRhPiYgY29udGV4dERhdGEgPSBl
eGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPm9wYXF1ZUpTQ2xhc3NEYXRhKCkuYWRkKHRoaXMs
IG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsKICAgICBpZiAoIWNvbnRleHREYXRhKQogICAgICAg
ICBjb250ZXh0RGF0YSA9IGFkb3B0UHRyKG5ldyBPcGFxdWVKU0NsYXNzQ29udGV4dERhdGEoZXhl
Yy0+Z2xvYmFsRGF0YSgpLCB0aGlzKSk7CiAgICAgcmV0dXJuICpjb250ZXh0RGF0YTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5oCShyZXZpc2lvbiAxNDY2MjQpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuaAkod29ya2luZyBjb3B5KQpA
QCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIkpTT2JqZWN0UmVmLmgiCiAKICNpbmNsdWRlICJX
ZWFrLmgiCi0jaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJQcm90ZWN0LmgiCiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jCShyZXZpc2lvbiAx
NDY2MjQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYwkod29y
a2luZyBjb3B5KQpAQCAtNTUsNiArNTUsOCBAQCB1c2luZyBzdGQ6OmlzbmFuOwogdm9pZCB0ZXN0
T2JqZWN0aXZlQ0FQSSh2b2lkKTsKICNlbmRpZgogCitleHRlcm4gdm9pZCBKU1N5bmNocm9ub3Vz
R2FyYmFnZUNvbGxlY3RGb3JEZWJ1Z2dpbmcoSlNDb250ZXh0UmVmKTsKKwogc3RhdGljIEpTR2xv
YmFsQ29udGV4dFJlZiBjb250ZXh0OwogaW50IGZhaWxlZDsKIHN0YXRpYyB2b2lkIGFzc2VydEVx
dWFsc0FzQm9vbGVhbihKU1ZhbHVlUmVmIHZhbHVlLCBib29sIGV4cGVjdGVkVmFsdWUpCkBAIC0x
MzIsNiArMTM0LDYxIEBAIHN0YXRpYyB2b2lkIGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cigK
ICAgICBKU1N0cmluZ1JlbGVhc2UodmFsdWVBc1N0cmluZyk7CiB9CiAKK3N0YXRpYyBpbnQgbGVh
a2VkT2JqZWN0ID0gMTsKKworc3RhdGljIHZvaWQgbGVha0ZpbmFsaXplKEpTT2JqZWN0UmVmIG9i
amVjdCkKK3sKKyAgICAodm9pZClvYmplY3Q7CisgICAgbGVha2VkT2JqZWN0ID0gMDsKK30KKwor
Ly8gVGhpcyBpcyBhIGhhY2sgdG8gYXZvaWQgdGhlIEMrKyBzdGFjayBrZWVwaW5nIHRoZSBvcmln
aW5hbCBKU09iamVjdCBhbGl2ZS4KK3N0YXRpYyB2b2lkIG5lc3RlZEFsbG9jYXRlT2JqZWN0KEpT
Q29udGV4dFJlZiBjb250ZXh0LCBKU0NsYXNzUmVmIGNsYXNzLCB1bnNpZ25lZCBuKQoreworICAg
IGlmICghbikgeworICAgICAgICBKU09iamVjdFJlZiBvYmplY3QgPSBKU09iamVjdE1ha2UoY29u
dGV4dCwgY2xhc3MsIDApOworICAgICAgICBKU09iamVjdFJlZiBnbG9iYWxPYmplY3QgPSBKU0Nv
bnRleHRHZXRHbG9iYWxPYmplY3QoY29udGV4dCk7CisgICAgICAgIEpTU3RyaW5nUmVmIHByb3Bl
cnR5TmFtZSA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJ2YWx1ZSIpOworICAgICAg
ICBKU09iamVjdFNldFByb3BlcnR5KGNvbnRleHQsIGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1l
LCBvYmplY3QsIGtKU1Byb3BlcnR5QXR0cmlidXRlTm9uZSwgMCk7CisgICAgICAgIEpTU3RyaW5n
UmVsZWFzZShwcm9wZXJ0eU5hbWUpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG5lc3Rl
ZEFsbG9jYXRlT2JqZWN0KGNvbnRleHQsIGNsYXNzLCBuIC0gMSk7Cit9CisKK3N0YXRpYyB2b2lk
IHRlc3RMZWFraW5nUHJvdG90eXBlc0Fjcm9zc0NvbnRleHRzKCkKK3sKKyAgICBKU0NsYXNzRGVm
aW5pdGlvbiBsZWFrRGVmaW5pdGlvbiA9IGtKU0NsYXNzRGVmaW5pdGlvbkVtcHR5OworICAgIGxl
YWtEZWZpbml0aW9uLmZpbmFsaXplID0gbGVha0ZpbmFsaXplOworICAgIEpTQ2xhc3NSZWYgbGVh
a0NsYXNzID0gSlNDbGFzc0NyZWF0ZSgmbGVha0RlZmluaXRpb24pOworCisgICAgSlNDb250ZXh0
R3JvdXBSZWYgZ3JvdXAgPSBKU0NvbnRleHRHcm91cENyZWF0ZSgpOworCisgICAgeworICAgICAg
ICBKU0dsb2JhbENvbnRleHRSZWYgY29udGV4dDEgPSBKU0dsb2JhbENvbnRleHRDcmVhdGVJbkdy
b3VwKGdyb3VwLCBOVUxMKTsKKyAgICAgICAgbmVzdGVkQWxsb2NhdGVPYmplY3QoY29udGV4dDEs
IGxlYWtDbGFzcywgMTApOworICAgICAgICBKU0dsb2JhbENvbnRleHRSZWxlYXNlKGNvbnRleHQx
KTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIEpTR2xvYmFsQ29udGV4dFJlZiBjb250ZXh0MiA9
IEpTR2xvYmFsQ29udGV4dENyZWF0ZUluR3JvdXAoZ3JvdXAsIE5VTEwpOworICAgICAgICBKU09i
amVjdFJlZiBvYmplY3QyID0gSlNPYmplY3RNYWtlKGNvbnRleHQyLCBsZWFrQ2xhc3MsIDApOwor
ICAgICAgICBKU1ZhbHVlUHJvdGVjdChjb250ZXh0Miwgb2JqZWN0Mik7CisgICAgICAgIEpTU3lu
Y2hyb25vdXNHYXJiYWdlQ29sbGVjdEZvckRlYnVnZ2luZyhjb250ZXh0Mik7CisgICAgICAgIGlm
IChsZWFrZWRPYmplY3QpIHsKKyAgICAgICAgICAgIHByaW50ZigiRkFJTDogRmFpbGVkIHRvIGZp
bmFsaXplIHRoZSBvcmlnaW5hbCBvYmplY3QgYWZ0ZXIgdGhlIGZpcnN0IEdDLlxuIik7CisgICAg
ICAgICAgICBmYWlsZWQgPSAxOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHByaW50Zigi
UEFTUzogRmluYWxpemVkIHRoZSBvcmlnaW5hbCBvYmplY3QgYXMgZXhwZWN0ZWQuXG4iKTsKKyAg
ICAgICAgSlNWYWx1ZVVucHJvdGVjdChjb250ZXh0Miwgb2JqZWN0Mik7CisgICAgICAgIEpTR2xv
YmFsQ29udGV4dFJlbGVhc2UoY29udGV4dDIpOworICAgIH0KKworICAgIEpTQ29udGV4dEdyb3Vw
UmVsZWFzZShncm91cCk7CisKKyAgICBKU0NsYXNzUmVsZWFzZShsZWFrQ2xhc3MpOworfQorCiBz
dGF0aWMgYm9vbCB0aW1lWm9uZUlzUFNUKCkKIHsKICAgICBjaGFyIHRpbWVab25lTmFtZVs3MF07
CkBAIC0xNjg1LDYgKzE3NDIsOCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQog
ICAgICAgICBmcmVlKHNjcmlwdFVURjgpOwogICAgIH0KIAorICAgIHRlc3RMZWFraW5nUHJvdG90
eXBlc0Fjcm9zc0NvbnRleHRzKCk7CisKICAgICAvLyBDbGVhciBvdXQgbG9jYWwgdmFyaWFibGVz
IHBvaW50aW5nIGF0IEpTT2JqZWN0UmVmcyB0byBhbGxvdyB0aGVpciB2YWx1ZXMgdG8gYmUgY29s
bGVjdGVkCiAgICAgZnVuY3Rpb24gPSBOVUxMOwogICAgIHYgPSBOVUxMOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5tbQkocmV2aXNpb24gMTQ2NjI0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0yNSw3ICsyNSw3IEBACiAKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLmg+CiAKLXZvaWQgSlNTeW5jaHJvbm91c0dhcmJhZ2VDb2xsZWN0Rm9yRGVidWdnaW5n
KEpTQ29udGV4dFJlZik7CitleHRlcm4gIkMiIHZvaWQgSlNTeW5jaHJvbm91c0dhcmJhZ2VDb2xs
ZWN0Rm9yRGVidWdnaW5nKEpTQ29udGV4dFJlZik7CiAKIGV4dGVybiAiQyIgYm9vbCBfQmxvY2tf
aGFzX3NpZ25hdHVyZShpZCk7CiBleHRlcm4gIkMiIGNvbnN0IGNoYXIgKiBfQmxvY2tfc2lnbmF0
dXJlKGlkKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0
YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxEYXRhLmNwcAkocmV2aXNpb24gMTQ2NjI0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxEYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNiBAQAog
I2luY2x1ZGUgIkpTQWN0aXZhdGlvbi5oIgogI2luY2x1ZGUgIkpTQVBJVmFsdWVXcmFwcGVyLmgi
CiAjaW5jbHVkZSAiSlNBcnJheS5oIgotI2luY2x1ZGUgIkpTQ2xhc3NSZWYuaCIKICNpbmNsdWRl
ICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNMb2NrLmgiCiAjaW5jbHVkZSAiSlNOYW1lU2Nv
cGUuaCIKQEAgLTMwNiw4ICszMDUsNiBAQCBKU0dsb2JhbERhdGE6On5KU0dsb2JhbERhdGEoKQog
ICAgIGZhc3REZWxldGUoY29uc3RfY2FzdDxIYXNoVGFibGUqPihyZWdFeHBQcm90b3R5cGVUYWJs
ZSkpOwogICAgIGZhc3REZWxldGUoY29uc3RfY2FzdDxIYXNoVGFibGUqPihzdHJpbmdDb25zdHJ1
Y3RvclRhYmxlKSk7CiAKLSAgICBvcGFxdWVKU0NsYXNzRGF0YS5jbGVhcigpOwotCiAgICAgZGVs
ZXRlIGVtcHR5TGlzdDsKIAogICAgIGRlbGV0ZSBwcm9wZXJ0eU5hbWVzOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmgJKHJldmlzaW9uIDE0NjYy
NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC02Miw5ICs2Miw2IEBACiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+
CiAjZW5kaWYKIAotc3RydWN0IE9wYXF1ZUpTQ2xhc3M7Ci1zdHJ1Y3QgT3BhcXVlSlNDbGFzc0Nv
bnRleHREYXRhOwotCiBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGNsYXNzIENvZGVCbG9jazsKQEAg
LTM2OSw4ICszNjYsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBnYXRoZXJDb25z
ZXJ2YXRpdmVSb290cyhDb25zZXJ2YXRpdmVSb290cyYpOwogI2VuZGlmCiAKLSAgICAgICAgSGFz
aE1hcDxPcGFxdWVKU0NsYXNzKiwgT3duUHRyPE9wYXF1ZUpTQ2xhc3NDb250ZXh0RGF0YT4gPiBv
cGFxdWVKU0NsYXNzRGF0YTsKLQogICAgICAgICBKU0dsb2JhbE9iamVjdCogZHluYW1pY0dsb2Jh
bE9iamVjdDsKIAogICAgICAgICBIYXNoU2V0PEpTT2JqZWN0Kj4gc3RyaW5nUmVjdXJzaW9uQ2hl
Y2tWaXNpdGVkT2JqZWN0czsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuaAkocmV2aXNpb24gMTQ2NjI0KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiAr
MjQsNyBAQAogCiAjaW5jbHVkZSAiQXJyYXlBbGxvY2F0aW9uUHJvZmlsZS5oIgogI2luY2x1ZGUg
IkpTQXJyYXkuaCIKKyNpbmNsdWRlICJKU0NsYXNzUmVmLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxE
YXRhLmgiCiAjaW5jbHVkZSAiSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdC5oIgogI2luY2x1ZGUg
IkpTV2Vha09iamVjdE1hcFJlZkludGVybmFsLmgiCkBAIC0zOCw2ICszOSw5IEBACiAjaW5jbHVk
ZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SYW5kb21OdW1iZXIuaD4KIAorc3RydWN0
IE9wYXF1ZUpTQ2xhc3M7CitzdHJ1Y3QgT3BhcXVlSlNDbGFzc0NvbnRleHREYXRhOworCiBuYW1l
c3BhY2UgSlNDIHsKIAogY2xhc3MgQXJyYXlQcm90b3R5cGU7CkBAIC04Niw2ICs5MCw3IEBAIHN0
cnVjdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSB7CiBjbGFzcyBKU0dsb2JhbE9iamVjdCA6IHB1
YmxpYyBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0IHsKIHByaXZhdGU6CiAgICAgdHlwZWRlZiBI
YXNoU2V0PFJlZlB0cjxPcGFxdWVKU1dlYWtPYmplY3RNYXA+ID4gV2Vha01hcFNldDsKKyAgICB0
eXBlZGVmIEhhc2hNYXA8T3BhcXVlSlNDbGFzcyosIE93blB0cjxPcGFxdWVKU0NsYXNzQ29udGV4
dERhdGE+ID4gT3BhcXVlSlNDbGFzc0RhdGFNYXA7CiAKICAgICBzdHJ1Y3QgSlNHbG9iYWxPYmpl
Y3RSYXJlRGF0YSB7CiAgICAgICAgIEpTR2xvYmFsT2JqZWN0UmFyZURhdGEoKQpAQCAtOTUsNiAr
MTAwLDggQEAgcHJpdmF0ZToKIAogICAgICAgICBXZWFrTWFwU2V0IHdlYWtNYXBzOwogICAgICAg
ICB1bnNpZ25lZCBwcm9maWxlR3JvdXA7CisgICAgICAgIAorICAgICAgICBPcGFxdWVKU0NsYXNz
RGF0YU1hcCBvcGFxdWVKU0NsYXNzRGF0YTsKICAgICB9OwogCiBwcm90ZWN0ZWQ6CkBAIC0zOTUs
NiArNDAyLDEyIEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fcmFyZURhdGEtPndlYWtNYXBzLnJl
bW92ZShtYXApOwogICAgIH0KIAorICAgIE9wYXF1ZUpTQ2xhc3NEYXRhTWFwJiBvcGFxdWVKU0Ns
YXNzRGF0YSgpCisgICAgeworICAgICAgICBjcmVhdGVSYXJlRGF0YUlmTmVlZGVkKCk7CisgICAg
ICAgIHJldHVybiBtX3JhcmVEYXRhLT5vcGFxdWVKU0NsYXNzRGF0YTsKKyAgICB9CisKICAgICBk
b3VibGUgd2Vha1JhbmRvbU51bWJlcigpIHsgcmV0dXJuIG1fd2Vha1JhbmRvbS5nZXQoKTsgfQog
ICAgIHVuc2lnbmVkIHdlYWtSYW5kb21JbnRlZ2VyKCkgeyByZXR1cm4gbV93ZWFrUmFuZG9tLmdl
dFVpbnQzMigpOyB9CiAK
</data>
<flag name="review"
          id="216413"
          type_id="1"
          status="+"
          setter="ggaren"
    />
    <flag name="commit-queue"
          id="216420"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
      

    </bug>

</bugzilla>