<?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>135258</bug_id>
          
          <creation_ts>2014-07-24 14:34:54 -0700</creation_ts>
          <short_desc>JSWrapperMap&apos;s jsWrapperForObject() needs to keep weak prototype and constructors from being GCed</short_desc>
          <delta_ts>2014-07-24 18:00:57 -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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>135265</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>mmirman</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1024612</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-07-24 14:34:54 -0700</bug_when>
    <thetext>In the process of creating a JS wrapper, jsWrapperForObject() will create the prototype and constructor of the corresponding ObjC class, as well as for classes in its inheritance chain.  These prototypes and constructors are stored in Weak references in the JSObjCClassInfo objects.  During all the allocation that is being done to create all the prototypes and constructors as well as the wrapper objects, a GC may occur thereby collecting one or more of these newly created prototype and constructor objects.

One example of where this problem can manifest is in wrapperForObject() which is called from jsWrapperForObject().  In wrapperFoObject(), we do the following steps:
1. reallocateConstructorAndOrPrototype() which creates the prototype object and store it in JSObjCClassInfo&apos;s m_prototype which is a Weak ref.
2. makeWrapper() to create the wrapper object, which may trigger a GC.  GC will collect the prototype object and nullify the corresponding JSObjCClassInfo&apos;s m_prototype Weak ref.
3. call JSObjectSetPrototype() to set the JSObjCClassInfo&apos;s m_prototype in the newly created wrapper.  This results in the wrapper getting a jsNull as a prototype instead of the expected prototype object.

To ensure that the prototype and constructor objects are retained until they can be referenced properly from the wrapper object, jsWrapperForObject() should defer GC until it&apos;s done with its work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024616</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-07-24 14:41:04 -0700</bug_when>
    <thetext>&lt;rdar://problem/17757800&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024618</commentid>
    <comment_count>2</comment_count>
      <attachid>235463</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-07-24 14:42:31 -0700</bug_when>
    <thetext>Created attachment 235463
the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024625</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-07-24 15:03:58 -0700</bug_when>
    <thetext>Thanks.  Landed in r171527: &lt;http://trac.webkit.org/r171527&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024651</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-07-24 16:11:31 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 135265</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024695</commentid>
    <comment_count>5</comment_count>
      <attachid>235478</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-07-24 17:18:44 -0700</bug_when>
    <thetext>Created attachment 235478
patch 2: new fix that does not defer GC</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024696</commentid>
    <comment_count>6</comment_count>
      <attachid>235478</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-07-24 17:21:32 -0700</bug_when>
    <thetext>Comment on attachment 235478
patch 2: new fix that does not defer GC

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024713</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-07-24 18:00:57 -0700</bug_when>
    <thetext>Thanks.  New fix landed in r171564: &lt;http://trac.webkit.org/r171564&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235463</attachid>
            <date>2014-07-24 14:42:31 -0700</date>
            <delta_ts>2014-07-24 17:18:44 -0700</delta_ts>
            <desc>the patch.</desc>
            <filename>bug-135258.patch</filename>
            <type>text/plain</type>
            <size>3576</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTcxNTI2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBA
CisyMDE0LTA3LTI0ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBK
U1dyYXBwZXJNYXAncyBqc1dyYXBwZXJGb3JPYmplY3QoKSBuZWVkcyB0byBkZWZlciBHQy4KKyAg
ICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEzNTI1OD4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiB0aGUgcHJvY2VzcyBvZiBjcmVhdGluZyBh
IEpTIHdyYXBwZXIsIGpzV3JhcHBlckZvck9iamVjdCgpIHdpbGwgY3JlYXRlCisgICAgICAgIHRo
ZSBwcm90b3R5cGUgYW5kIGNvbnN0cnVjdG9yIG9mIHRoZSBjb3JyZXNwb25kaW5nIE9iakMgY2xh
c3MsIGFzIHdlbGwgYXMKKyAgICAgICAgZm9yIGNsYXNzZXMgaW4gaXRzIGluaGVyaXRhbmNlIGNo
YWluLiAgVGhlc2UgcHJvdG90eXBlcyBhbmQgY29uc3RydWN0b3JzCisgICAgICAgIGFyZSBzdG9y
ZWQgaW4gV2VhayByZWZlcmVuY2VzIGluIHRoZSBKU09iakNDbGFzc0luZm8gb2JqZWN0cy4gIER1
cmluZyBhbGwKKyAgICAgICAgdGhlIGFsbG9jYXRpb24gdGhhdCBpcyBiZWluZyBkb25lIHRvIGNy
ZWF0ZSBhbGwgdGhlIHByb3RvdHlwZXMgYW5kCisgICAgICAgIGNvbnN0cnVjdG9ycyBhcyB3ZWxs
IGFzIHRoZSB3cmFwcGVyIG9iamVjdHMsIGEgR0MgbWF5IG9jY3VyIHRoZXJlYnkKKyAgICAgICAg
Y29sbGVjdGluZyBvbmUgb3IgbW9yZSBvZiB0aGVzZSBuZXdseSBjcmVhdGVkIHByb3RvdHlwZSBh
bmQgY29uc3RydWN0b3IKKyAgICAgICAgb2JqZWN0cy4KKworICAgICAgICBPbmUgZXhhbXBsZSBv
ZiB3aGVyZSB0aGlzIHByb2JsZW0gY2FuIG1hbmlmZXN0IGlzIGluIHdyYXBwZXJGb3JPYmplY3Qo
KQorICAgICAgICB3aGljaCBpcyBjYWxsZWQgZnJvbSBqc1dyYXBwZXJGb3JPYmplY3QoKS4gIElu
IHdyYXBwZXJGb09iamVjdCgpLCB3ZSBkbworICAgICAgICB0aGUgZm9sbG93aW5nIHN0ZXBzOgor
CisgICAgICAgIDEuIHJlYWxsb2NhdGVDb25zdHJ1Y3RvckFuZE9yUHJvdG90eXBlKCkgd2hpY2gg
Y3JlYXRlcyB0aGUgcHJvdG90eXBlCisgICAgICAgICAgIG9iamVjdCBhbmQgc3RvcmUgaXQgaW4g
SlNPYmpDQ2xhc3NJbmZvJ3MgbV9wcm90b3R5cGUgd2hpY2ggaXMgYSBXZWFrCisgICAgICAgICAg
IHJlZi4KKyAgICAgICAgMi4gbWFrZVdyYXBwZXIoKSB0byBjcmVhdGUgdGhlIHdyYXBwZXIgb2Jq
ZWN0LCB3aGljaCBtYXkgdHJpZ2dlciBhIEdDLgorICAgICAgICAgICBHQyB3aWxsIGNvbGxlY3Qg
dGhlIHByb3RvdHlwZSBvYmplY3QgYW5kIG51bGxpZnkgdGhlIGNvcnJlc3BvbmRpbmcKKyAgICAg
ICAgICAgSlNPYmpDQ2xhc3NJbmZvJ3MgbV9wcm90b3R5cGUgV2VhayByZWYuCisgICAgICAgIDMu
IGNhbGwgSlNPYmplY3RTZXRQcm90b3R5cGUoKSB0byBzZXQgdGhlIEpTT2JqQ0NsYXNzSW5mbydz
IG1fcHJvdG90eXBlCisgICAgICAgICAgIGluIHRoZSBuZXdseSBjcmVhdGVkIHdyYXBwZXIuICBU
aGlzIHJlc3VsdHMgaW4gdGhlIHdyYXBwZXIgZ2V0dGluZyBhCisgICAgICAgICAgIGpzTnVsbCBh
cyBhIHByb3RvdHlwZSBpbnN0ZWFkIG9mIHRoZSBleHBlY3RlZCBwcm90b3R5cGUgb2JqZWN0Lgor
CisgICAgICAgIFRvIGVuc3VyZSB0aGF0IHRoZSBwcm90b3R5cGUgYW5kIGNvbnN0cnVjdG9yIG9i
amVjdHMgYXJlIHJldGFpbmVkIHVudGlsCisgICAgICAgIHRoZXkgY2FuIGJlIHJlZmVyZW5jZWQg
cHJvcGVybHkgZnJvbSB0aGUgd3JhcHBlciBvYmplY3QsCisgICAgICAgIGpzV3JhcHBlckZvck9i
amVjdCgpIHNob3VsZCBkZWZlciBHQyB1bnRpbCBpdCdzIGRvbmUgd2l0aCBpdHMgd29yay4KKwor
ICAgICAgICAqIEFQSS9KU1dyYXBwZXJNYXAubW06CisgICAgICAgICgtW0pTV3JhcHBlck1hcCBq
c1dyYXBwZXJGb3JPYmplY3Q6XSk6CisKIDIwMTQtMDctMjMgIEJyZW50IEZ1bGdoYW0gIDxiZnVs
Z2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgQnVpbGQgZml4IGFmdGVyIHIxNzE0ODIuCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQkocmV2aXNpb24gMTcx
NTI2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAubW0JKHdvcmtp
bmcgY29weSkKQEAgLTU4Miw2ICs1ODIsOSBAQCAtIChKU09iakNDbGFzc0luZm8qKWNsYXNzSW5m
b0ZvckNsYXNzOihDCiAKIC0gKEpTVmFsdWUgKilqc1dyYXBwZXJGb3JPYmplY3Q6KGlkKW9iamVj
dAogeworICAgIEpTQzo6RXhlY1N0YXRlKiBleGVjID0gdG9KUyhbbV9jb250ZXh0IEpTR2xvYmFs
Q29udGV4dFJlZl0pOworICAgIEpTQzo6RGVmZXJHQyBkZWZlckdDKGV4ZWMtPnZtKCkuaGVhcCk7
CisKICAgICBKU0M6OkpTT2JqZWN0KiBqc1dyYXBwZXIgPSBtX2NhY2hlZEpTV3JhcHBlcnMuZ2V0
KG9iamVjdCk7CiAgICAgaWYgKGpzV3JhcHBlcikKICAgICAgICAgcmV0dXJuIFtKU1ZhbHVlIHZh
bHVlV2l0aEpTVmFsdWVSZWY6dG9SZWYoanNXcmFwcGVyKSBpbkNvbnRleHQ6bV9jb250ZXh0XTsK
QEAgLTU5OSw3ICs2MDIsNiBAQCAtIChKU1ZhbHVlICopanNXcmFwcGVyRm9yT2JqZWN0OihpZClv
YmplCiAgICAgLy8gKDEpIEZvciBpbW1vcnRhbCBvYmplY3RzIEpTVmFsdWVzIHdpbGwgZWZmZWN0
aXZlbHkgbGVhayBhbmQgdGhpcyByZXN1bHRzIGluIGVycm9yIG91dHB1dCBiZWluZyBsb2dnZWQg
LSB3ZSBzaG91bGQgYXZvaWQgYWRkaW5nIGFzc29jaWF0ZWQgb2JqZWN0cyB0byBpbW1vcnRhbCBv
YmplY3RzLgogICAgIC8vICgyKSBBIGxvbmcgbGl2ZWQgb2JqZWN0IG1heSByYWNrIHVwIG1hbnkg
SlNWYWx1ZXMuIFdoZW4gdGhlIGNvbnRleHRzIGFyZSByZWxlYXNlZCB0aGVzZSB3aWxsIHVucHJv
dGVjdCB0aGUgYXNzb2NpYXRlZCBKYXZhU2NyaXB0IG9iamVjdHMsCiAgICAgLy8gICAgIGJ1dCBz
dGlsbCwgd291bGQgcHJvYmFibHkgbmljZXIgaWYgd2UgbWFkZSBpdCBzbyB0aGF0IG9ubHkgb25l
IGFzc29jaWF0ZWQgb2JqZWN0IHdhcyByZXF1aXJlZCwgYnJvYWRjYXN0aW5nIG9iamVjdCBkZWFs
bG9jLgotICAgIEpTQzo6RXhlY1N0YXRlKiBleGVjID0gdG9KUyhbbV9jb250ZXh0IEpTR2xvYmFs
Q29udGV4dFJlZl0pOwogICAgIGpzV3JhcHBlciA9IHRvSlMoZXhlYywgdmFsdWVJbnRlcm5hbFZh
bHVlKHdyYXBwZXIpKS50b09iamVjdChleGVjKTsKICAgICBtX2NhY2hlZEpTV3JhcHBlcnMuc2V0
KG9iamVjdCwganNXcmFwcGVyKTsKICAgICByZXR1cm4gd3JhcHBlcjsK
</data>
<flag name="review"
          id="260032"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235478</attachid>
            <date>2014-07-24 17:18:44 -0700</date>
            <delta_ts>2014-07-24 17:21:32 -0700</delta_ts>
            <desc>patch 2: new fix that does not defer GC</desc>
            <filename>bug-135258.patch</filename>
            <type>text/plain</type>
            <size>4052</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTcxNTU4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBA
CisyMDE0LTA3LTI0ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBK
U1dyYXBwZXJNYXAncyBqc1dyYXBwZXJGb3JPYmplY3QoKSBuZWVkcyB0byBrZWVwIHdlYWsgcHJv
dG90eXBlIGFuZCBjb25zdHJ1Y3RvcnMgZnJvbSBiZWluZyBHQ2VkLgorICAgICAgICA8aHR0cHM6
Ly93ZWJraXQub3JnL2IvMTM1MjU4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdoZXJlIG5lZWRlZCwgd2UgY2FjaGUgdGhlIHByb3RvdHlwZSBvYmpl
Y3QgcG9pbnRlciBpbiBhIHN0YWNrIGxvY2FsIHZhci4KKyAgICAgICAgVGhpcyBhbGxvd3MgaXQg
dG8gYmUgc2Nhbm5lZCBieSB0aGUgR0MsIGFuZCBoZW5jZSBiZSBrZXB0IGFsaXZlIHVudGlsCisg
ICAgICAgIHdlIHVzZSBpdC4gIFRoZSBjb25zdHJ1Y3RvciBvYmplY3Qgd2lsbCBpbiB0dXJuIGJl
IGtlcHQgYWxpdmUgYnkgdGhlCisgICAgICAgIHByb3RvdHlwZSBvYmplY3QuCisKKyAgICAgICAg
QWxzbyBhZGRlZCBzb21lIGNvbW1lbnRzIHRvIHdhcm4gYWdhaW5zdCBmdXR1cmUgY29kZSBhZGRp
dGlvbnMgdGhhdCBjb3VsZAorICAgICAgICByZWdyZXNzIHRoaXMgaXNzdWUuCisKKyAgICAgICAg
KiBBUEkvSlNXcmFwcGVyTWFwLm1tOgorICAgICAgICAoLVtKU09iakNDbGFzc0luZm8gYWxsb2Nh
dGVDb25zdHJ1Y3RvckFuZFByb3RvdHlwZVdpdGhTdXBlckNsYXNzSW5mbzpdKToKKyAgICAgICAg
KC1bSlNPYmpDQ2xhc3NJbmZvIHJlYWxsb2NhdGVDb25zdHJ1Y3RvckFuZE9yUHJvdG90eXBlXSk6
CisgICAgICAgICgtW0pTT2JqQ0NsYXNzSW5mbyB3cmFwcGVyRm9yT2JqZWN0Ol0pOgorICAgICAg
ICAoLVtKU09iakNDbGFzc0luZm8gY29uc3RydWN0b3JdKToKKwogMjAxNC0wNy0yNCAgSm9zZXBo
IFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIEpTTG9jayByZWxlYXNl
IHNob3VsZCBvbmx5IG1vZGlmeSB0aGUgQXRvbWljU3RyaW5nVGFibGUgaWYgaXQgbW9kaWZpZWQg
aW4gYWNxdWlyZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAu
bW0JKHJldmlzaW9uIDE3MTU1NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXcmFw
cGVyTWFwLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00NjQsNiArNDY0LDExIEBAIC0gKHZvaWQpYWxs
b2NhdGVDb25zdHJ1Y3RvckFuZFByb3RvdHlwZVcKICAgICAgICAgICAgIG1fcHJvdG90eXBlID0g
dG9KUyhKU1ZhbHVlVG9PYmplY3QoY0NvbnRleHQsIHZhbHVlSW50ZXJuYWxWYWx1ZShwcm90b3R5
cGUpLCAwKSk7CiAgICAgICAgIH0KICAgICB9IGVsc2UgeworICAgICAgICAvLyBXZSBuZWVkIHRv
IGhvbGQgYSByZWZlcmVuY2UgdG8gdGhlIHN1cGVyY2xhc3MgcHJvdG90eXBlIGhlcmUgb24gdGhl
IHN0YWNrCisgICAgICAgIC8vIHRvIHRoYXQgaXQgd29uJ3QgZ2V0IEdDJ2VkIHdoaWxlIHdlIGRv
IGFsbG9jYXRpb25zIGJldHdlZW4gbm93IGFuZCB3aGVuIHdlCisgICAgICAgIC8vIHNldCBpdCBp
biB0aGlzIGNsYXNzJyBwcm90b3R5cGUgYmVsb3cuCisgICAgICAgIEpTQzo6SlNPYmplY3QqIHN1
cGVyQ2xhc3NQcm90b3R5cGUgPSBzdXBlckNsYXNzSW5mby0+bV9wcm90b3R5cGUuZ2V0KCk7CisK
ICAgICAgICAgY29uc3QgY2hhciogY2xhc3NOYW1lID0gY2xhc3NfZ2V0TmFtZShtX2NsYXNzKTsK
IAogICAgICAgICAvLyBDcmVhdGUgb3IgZ3JhYiB0aGUgcHJvdG90eXBlL2NvbnN0cnVjdG9yIHBh
aXIuCkBAIC00OTMsMTMgKzQ5OCwxNSBAQCAgICAgICAgIGZvckVhY2hQcm90b2NvbEltcGxlbWVu
dGluZ1Byb3RvCiAgICAgICAgIH0pOwogCiAgICAgICAgIC8vIFNldCBbUHJvdG90eXBlXS4KLSAg
ICAgICAgSlNPYmplY3RTZXRQcm90b3R5cGUoW21fY29udGV4dCBKU0dsb2JhbENvbnRleHRSZWZd
LCB0b1JlZihtX3Byb3RvdHlwZS5nZXQoKSksIHRvUmVmKHN1cGVyQ2xhc3NJbmZvLT5tX3Byb3Rv
dHlwZS5nZXQoKSkpOworICAgICAgICBKU09iamVjdFNldFByb3RvdHlwZShbbV9jb250ZXh0IEpT
R2xvYmFsQ29udGV4dFJlZl0sIHRvUmVmKG1fcHJvdG90eXBlLmdldCgpKSwgdG9SZWYoc3VwZXJD
bGFzc1Byb3RvdHlwZSkpOwogICAgIH0KIH0KIAogLSAodm9pZClyZWFsbG9jYXRlQ29uc3RydWN0
b3JBbmRPclByb3RvdHlwZQogewogICAgIFtzZWxmIGFsbG9jYXRlQ29uc3RydWN0b3JBbmRQcm90
b3R5cGVXaXRoU3VwZXJDbGFzc0luZm86W21fY29udGV4dC53cmFwcGVyTWFwIGNsYXNzSW5mb0Zv
ckNsYXNzOmNsYXNzX2dldFN1cGVyY2xhc3MobV9jbGFzcyldXTsKKyAgICAvLyBXZSBzaG91bGQg
bm90IGFkZCBhbnkgY29kZSBoZXJlIHRoYXQgY2FuIHRyaWdnZXIgYSBHQyBvciB0aGUgcHJvdG90
eXBlIGFuZAorICAgIC8vIGNvbnN0cnVjdG9yIHRoYXQgd2UganVzdCBjcmVhdGVkIG1heSBiZSBj
b2xsZWN0ZWQgYmVmb3JlIHRoZXkgY2FuIGJlIHVzZWQuCiB9CiAKIC0gKEpTVmFsdWUgKil3cmFw
cGVyRm9yT2JqZWN0OihpZClvYmplY3QKQEAgLTUxOSw5ICs1MjYsMTIgQEAgLSAoSlNWYWx1ZSAq
KXdyYXBwZXJGb3JPYmplY3Q6KGlkKW9iamVjdAogICAgIGlmICghbV9wcm90b3R5cGUpCiAgICAg
ICAgIFtzZWxmIHJlYWxsb2NhdGVDb25zdHJ1Y3RvckFuZE9yUHJvdG90eXBlXTsKICAgICBBU1NF
UlQoISFtX3Byb3RvdHlwZSk7CisgICAgLy8gV2UgbmVlZCB0byBob2xkIGEgcmVmZXJlbmNlIHRv
IHRoZSBwcm90b3R5cGUgaGVyZSBvbiB0aGUgc3RhY2sgdG8gdGhhdCBpdCB3b24ndAorICAgIC8v
IGdldCBHQydlZCB3aGlsZSB3ZSBjcmVhdGUgdGhlIHdyYXBwZXIgYmVsb3cuCisgICAgSlNDOjpK
U09iamVjdCogcHJvdG90eXBlID0gbV9wcm90b3R5cGUuZ2V0KCk7CiAKICAgICBKU09iamVjdFJl
ZiB3cmFwcGVyID0gbWFrZVdyYXBwZXIoW21fY29udGV4dCBKU0dsb2JhbENvbnRleHRSZWZdLCBt
X2NsYXNzUmVmLCBvYmplY3QpOwotICAgIEpTT2JqZWN0U2V0UHJvdG90eXBlKFttX2NvbnRleHQg
SlNHbG9iYWxDb250ZXh0UmVmXSwgd3JhcHBlciwgdG9SZWYobV9wcm90b3R5cGUuZ2V0KCkpKTsK
KyAgICBKU09iamVjdFNldFByb3RvdHlwZShbbV9jb250ZXh0IEpTR2xvYmFsQ29udGV4dFJlZl0s
IHdyYXBwZXIsIHRvUmVmKHByb3RvdHlwZSkpOwogICAgIHJldHVybiBbSlNWYWx1ZSB2YWx1ZVdp
dGhKU1ZhbHVlUmVmOndyYXBwZXIgaW5Db250ZXh0Om1fY29udGV4dF07CiB9CiAKQEAgLTUzMCw2
ICs1NDAsOSBAQCAtIChKU1ZhbHVlICopY29uc3RydWN0b3IKICAgICBpZiAoIW1fY29uc3RydWN0
b3IpCiAgICAgICAgIFtzZWxmIHJlYWxsb2NhdGVDb25zdHJ1Y3RvckFuZE9yUHJvdG90eXBlXTsK
ICAgICBBU1NFUlQoISFtX2NvbnN0cnVjdG9yKTsKKyAgICAvLyBJZiB3ZSBuZWVkIHRvIGFkZCBh
bnkgY29kZSBoZXJlIGluIHRoZSBmdXR1cmUgdGhhdCBjYW4gdHJpZ2dlciBhIEdDLCB3ZSBzaG91
bGQKKyAgICAvLyBjYWNoZSB0aGUgY29uc3RydWN0b3IgcG9pbnRlciBpbiBhIHN0YWNrIGxvY2Fs
IHZhciBmaXJzdCBzbyB0aGF0IGl0IGlzIHByb3RlY3RlZAorICAgIC8vIGZyb20gdGhlIEdDIHVu
dGlsIGl0IGdldHMgdXNlZCBiZWxvdy4KICAgICByZXR1cm4gW0pTVmFsdWUgdmFsdWVXaXRoSlNW
YWx1ZVJlZjp0b1JlZihtX2NvbnN0cnVjdG9yLmdldCgpKSBpbkNvbnRleHQ6bV9jb250ZXh0XTsK
IH0KIAo=
</data>
<flag name="review"
          id="260050"
          type_id="1"
          status="+"
          setter="mhahnenberg"
    />
          </attachment>
      

    </bug>

</bugzilla>