<?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>80654</bug_id>
          
          <creation_ts>2012-03-08 16:26:17 -0800</creation_ts>
          <short_desc>Allocate the RegExpObject&apos;s data with the Cell</short_desc>
          <delta_ts>2012-03-08 22:50:51 -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>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="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>barraclough</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>574367</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-03-08 16:26:17 -0800</bug_when>
    <thetext>Currently, RegExpObject&apos;s data is allocated with new() in the constructor.

This is a problem in peacekeeper. In that case, the tests repeatedly create very small and simple regexp, and use them only one. Currently, the allocation and destruction of RegExpObjectData take more time than the math() itself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574378</commentid>
    <comment_count>1</comment_count>
      <attachid>130938</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-03-08 16:34:53 -0800</bug_when>
    <thetext>Created attachment 130938
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574379</commentid>
    <comment_count>2</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-03-08 16:37:56 -0800</bug_when>
    <thetext>I also tried Sunspider but there is no change.

While trying this, I also noticed JSNonFinalObject has some spare memory:
   WriteBarrierBase&lt;Unknown&gt; m_inlineStorage[JSFinalObject_inlineStorageCapacity];
Since I am not familiar with that, I did not abuse it to store anything from RegExp. I don&apos;t know if anything could be done there?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574410</commentid>
    <comment_count>3</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-03-08 17:14:06 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; I also tried Sunspider but there is no change.
&gt; 
&gt; While trying this, I also noticed JSNonFinalObject has some spare memory:
&gt;    WriteBarrierBase&lt;Unknown&gt; m_inlineStorage[JSFinalObject_inlineStorageCapacity];
&gt; Since I am not familiar with that, I did not abuse it to store anything from RegExp. I don&apos;t know if anything could be done there?

We used to have a concept of &apos;anonymous slots&apos;, to allocate storage within the object&apos;s property storage, but I think that has been removed.  ES6 will require support for &apos;private names&apos;, we may be able to use these to store internal values (e.g. the regexp) – once we have a mechanism to support this implemented!  Right now, no obvious clean way to use the internal property storage springs to mind.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574648</commentid>
    <comment_count>4</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-03-08 22:50:51 -0800</bug_when>
    <thetext>Committed r110266: &lt;http://trac.webkit.org/changeset/110266&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130938</attachid>
            <date>2012-03-08 16:34:53 -0800</date>
            <delta_ts>2012-03-08 17:15:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80654-20120308163452.patch</filename>
            <type>text/plain</type>
            <size>10067</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5OTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
NzMyYzc4MjIxMGRjZDdmZTJkNDQ2OTNhODVlMjljYTYyNmE1MGQ3Li41ZDNkMTI2ZmQwMGE4ZjEw
ZDYyM2Q5MzhmNDE0YjYyOGVlNTJmNzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAxMi0wMy0wOCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBBbGxvY2F0ZSB0aGUgUmVnRXhwT2JqZWN0J3MgZGF0YSB3aXRoIHRo
ZSBDZWxsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
MDY1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggcmVtb3ZlcyB0aGUgY3JlYXRpb24gb2YgUmVnRXhwT2JqZWN0J3MgZGF0YSB0byBh
dm9pZCB0aGUgb3ZlcmhlYWQKKyAgICAgICAgY3JlYXRlIGJ5IHRoZSBhbGxvY2F0aW9uIGFuZCBk
ZXN0cnVjdGlvbi4KKworICAgICAgICBXZSBSZWdFeHAgYXJlIGNyZWF0ZWQgcmVwZWF0ZWRseSwg
dGhpcyBwcm92aWRlcyBzb21lIHBlcmZvcm1hbmNlIGltcHJvdm1lbnQuCisgICAgICAgIFRoZSBQ
ZWFjZUtlZXBlciB0ZXN0IHN0cmluZ0RldGVjdEJyb3dzZXIgaW1wcm92ZXMgYnkgMTAlLgorCisg
ICAgICAgICogcnVudGltZS9SZWdFeHBPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpSZWdFeHBP
YmplY3Q6OlJlZ0V4cE9iamVjdCk6CisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6dmlzaXRD
aGlsZHJlbik6CisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKToKKyAgICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eSk6
CisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6bWF0Y2gpOgorICAgICAgICAqIHJ1bnRpbWUv
UmVnRXhwT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6c2V0UmVnRXhwKToK
KyAgICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjpyZWdFeHApOgorICAgICAgICAoSlNDOjpSZWdF
eHBPYmplY3Q6OnNldExhc3RJbmRleCk6CisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6Z2V0
TGFzdEluZGV4KToKKyAgICAgICAgKFJlZ0V4cE9iamVjdCk6CisKIDIwMTItMDMtMDYgIFVsYW4g
RGVnZW5iYWV2ICA8dWxhbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVHlwZWRBcnJheSBzdWJh
cnJheSBjYWxsIGZvciBzdWJhcnJheSBkb2VzIG5vdCBjbGFtcCB0aGUgZW5kIGluZGV4IHBhcmFt
ZXRlciBwcm9wZXJseQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9i
amVjdC5jcHAKaW5kZXggMzRmYzRlN2U5NThkMzk3MmZhMGVjMGExMDQzZTk2NDEwZDQ5MDA4Zi4u
YTgxNzk5YzQ2NDVmNWFlN2RiYTcyNzY1NjUwN2MxNTc0NDA3YzM3YSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwCkBAIC0xLDYgKzEsNiBAQAog
LyoKICAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUu
b3JnKQotICogIENvcHlyaWdodCAoQykgMjAwMywgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA3LCAyMDA4LCAyMDEy
IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAg
LTYyLDggKzYyLDEwIEBAIGNvbnN0IENsYXNzSW5mbyBSZWdFeHBPYmplY3Q6OnNfaW5mbyA9IHsg
IlJlZ0V4cCIsICZKU05vbkZpbmFsT2JqZWN0OjpzX2luZm8sIDAsCiAKIFJlZ0V4cE9iamVjdDo6
UmVnRXhwT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBSZWdFeHAqIHJlZ0V4cCkKICAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsT2Jq
ZWN0LT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKLSAgICAsIGQoYWRvcHRQdHIobmV3IFJlZ0V4
cE9iamVjdERhdGEoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIHRoaXMsIHJlZ0V4cCkpKQor
ICAgICwgbV9yZWdFeHAoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIHRoaXMsIHJlZ0V4cCkK
KyAgICAsIG1fbGFzdEluZGV4SXNXcml0YWJsZSh0cnVlKQogeworICAgIG1fbGFzdEluZGV4LnNl
dFdpdGhvdXRXcml0ZUJhcnJpZXIoanNOdW1iZXIoMCkpOwogfQogCiB2b2lkIFJlZ0V4cE9iamVj
dDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKQEAgLTcyLDEx
ICs3NCw2IEBAIHZvaWQgUmVnRXhwT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiB9CiAKLXZv
aWQgUmVnRXhwT2JqZWN0OjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKLXsKLSAgICBqc0Nhc3Q8UmVn
RXhwT2JqZWN0Kj4oY2VsbCktPlJlZ0V4cE9iamVjdDo6flJlZ0V4cE9iamVjdCgpOwotfQotCiB2
b2lkIFJlZ0V4cE9iamVjdDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9y
JiB2aXNpdG9yKQogewogICAgIFJlZ0V4cE9iamVjdCogdGhpc09iamVjdCA9IGpzQ2FzdDxSZWdF
eHBPYmplY3QqPihjZWxsKTsKQEAgLTg0LDEwICs4MSwxMCBAQCB2b2lkIFJlZ0V4cE9iamVjdDo6
dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIENP
TVBJTEVfQVNTRVJUKFN0cnVjdHVyZUZsYWdzICYgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiwgT3Zl
cnJpZGVzVmlzaXRDaGlsZHJlbldpdGhvdXRTZXR0aW5nRmxhZyk7CiAgICAgQVNTRVJUKHRoaXNP
YmplY3QtPnN0cnVjdHVyZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSk7
CiAgICAgQmFzZTo6dmlzaXRDaGlsZHJlbih0aGlzT2JqZWN0LCB2aXNpdG9yKTsKLSAgICBpZiAo
dGhpc09iamVjdC0+ZC0+cmVnRXhwKQotICAgICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVj
dC0+ZC0+cmVnRXhwKTsKLSAgICBpZiAoVU5MSUtFTFkoIXRoaXNPYmplY3QtPmQtPmxhc3RJbmRl
eC5nZXQoKS5pc0ludDMyKCkpKQotICAgICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+
ZC0+bGFzdEluZGV4KTsKKyAgICBpZiAodGhpc09iamVjdC0+bV9yZWdFeHApCisgICAgICAgIHZp
c2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX3JlZ0V4cCk7CisgICAgaWYgKFVOTElLRUxZKCF0
aGlzT2JqZWN0LT5tX2xhc3RJbmRleC5nZXQoKS5pc0ludDMyKCkpKQorICAgICAgICB2aXNpdG9y
LmFwcGVuZCgmdGhpc09iamVjdC0+bV9sYXN0SW5kZXgpOwogfQogCiBib29sIFJlZ0V4cE9iamVj
dDo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKQEAgLTEwNCw3
ICsxMDEsNyBAQCBib29sIFJlZ0V4cE9iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpT
T2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgYwogewogICAgIGlmIChwcm9wZXJ0eU5h
bWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmxhc3RJbmRleCkgewogICAgICAgICBSZWdFeHBP
YmplY3QqIHJlZ0V4cCA9IGFzUmVnRXhwT2JqZWN0KG9iamVjdCk7Ci0gICAgICAgIGRlc2NyaXB0
b3Iuc2V0RGVzY3JpcHRvcihyZWdFeHAtPmdldExhc3RJbmRleCgpLCByZWdFeHAtPmQtPmxhc3RJ
bmRleElzV3JpdGFibGUgPyBEb250RGVsZXRlIHwgRG9udEVudW0gOiBEb250RGVsZXRlIHwgRG9u
dEVudW0gfCBSZWFkT25seSk7CisgICAgICAgIGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRvcihyZWdF
eHAtPmdldExhc3RJbmRleCgpLCByZWdFeHAtPm1fbGFzdEluZGV4SXNXcml0YWJsZSA/IERvbnRE
ZWxldGUgfCBEb250RW51bSA6IERvbnREZWxldGUgfCBEb250RW51bSB8IFJlYWRPbmx5KTsKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZURlc2Ny
aXB0b3I8UmVnRXhwT2JqZWN0LCBKU09iamVjdD4oZXhlYywgRXhlY1N0YXRlOjpyZWdFeHBUYWJs
ZShleGVjKSwganNDYXN0PFJlZ0V4cE9iamVjdCo+KG9iamVjdCksIHByb3BlcnR5TmFtZSwgZGVz
Y3JpcHRvcik7CkBAIC0xNDgsNyArMTQ1LDcgQEAgYm9vbCBSZWdFeHBPYmplY3Q6OmRlZmluZU93
blByb3BlcnR5KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWQKICAg
ICAgICAgICAgIHJldHVybiByZWplY3QoZXhlYywgc2hvdWxkVGhyb3csICJBdHRlbXB0aW5nIHRv
IGNoYW5nZSBlbnVtZXJhYmxlIGF0dHJpYnV0ZSBvZiB1bmNvbmZpZ3VyYWJsZSBwcm9wZXJ0eS4i
KTsKICAgICAgICAgaWYgKGRlc2NyaXB0b3IuaXNBY2Nlc3NvckRlc2NyaXB0b3IoKSkKICAgICAg
ICAgICAgIHJldHVybiByZWplY3QoZXhlYywgc2hvdWxkVGhyb3csICJBdHRlbXB0aW5nIHRvIGNo
YW5nZSBhY2Nlc3MgbWVjaGFuaXNtIGZvciBhbiB1bmNvbmZpZ3VyYWJsZSBwcm9wZXJ0eS4iKTsK
LSAgICAgICAgaWYgKCFyZWdFeHAtPmQtPmxhc3RJbmRleElzV3JpdGFibGUpIHsKKyAgICAgICAg
aWYgKCFyZWdFeHAtPm1fbGFzdEluZGV4SXNXcml0YWJsZSkgewogICAgICAgICAgICAgaWYgKGRl
c2NyaXB0b3Iud3JpdGFibGVQcmVzZW50KCkgJiYgZGVzY3JpcHRvci53cml0YWJsZSgpKQogICAg
ICAgICAgICAgICAgIHJldHVybiByZWplY3QoZXhlYywgc2hvdWxkVGhyb3csICJBdHRlbXB0aW5n
IHRvIGNoYW5nZSB3cml0YWJsZSBhdHRyaWJ1dGUgb2YgdW5jb25maWd1cmFibGUgcHJvcGVydHku
Iik7CiAgICAgICAgICAgICBpZiAoIXNhbWVWYWx1ZShleGVjLCByZWdFeHAtPmdldExhc3RJbmRl
eCgpLCBkZXNjcmlwdG9yLnZhbHVlKCkpKQpAQCAtMTU2LDcgKzE1Myw3IEBAIGJvb2wgUmVnRXhw
T2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAg
ICBpZiAoZGVzY3JpcHRvci53cml0YWJsZVByZXNlbnQoKSAmJiAhZGVzY3JpcHRvci53cml0YWJs
ZSgpKQotICAgICAgICAgICAgcmVnRXhwLT5kLT5sYXN0SW5kZXhJc1dyaXRhYmxlID0gZmFsc2U7
CisgICAgICAgICAgICByZWdFeHAtPm1fbGFzdEluZGV4SXNXcml0YWJsZSA9IGZhbHNlOwogICAg
ICAgICBpZiAoZGVzY3JpcHRvci52YWx1ZSgpKQogICAgICAgICAgICAgcmVnRXhwLT5zZXRMYXN0
SW5kZXgoZXhlYywgZGVzY3JpcHRvci52YWx1ZSgpLCBmYWxzZSk7CiAgICAgICAgIHJldHVybiB0
cnVlOwpAQCAtMzAwLDcgKzI5Nyw3IEBAIGJvb2wgUmVnRXhwT2JqZWN0OjptYXRjaChFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgaWYgKCFyZWdFeHAoKS0+Z2xvYmFsKCkpIHsKICAgICAgICAgaW50IHBv
c2l0aW9uOwogICAgICAgICBpbnQgbGVuZ3RoOwotICAgICAgICByZWdFeHBDb25zdHJ1Y3Rvci0+
cGVyZm9ybU1hdGNoKCpnbG9iYWxEYXRhLCBkLT5yZWdFeHAuZ2V0KCksIGlucHV0LCAwLCBwb3Np
dGlvbiwgbGVuZ3RoKTsKKyAgICAgICAgcmVnRXhwQ29uc3RydWN0b3ItPnBlcmZvcm1NYXRjaCgq
Z2xvYmFsRGF0YSwgbV9yZWdFeHAuZ2V0KCksIGlucHV0LCAwLCBwb3NpdGlvbiwgbGVuZ3RoKTsK
ICAgICAgICAgcmV0dXJuIHBvc2l0aW9uID49IDA7CiAgICAgfQogCkBAIC0zMjMsNyArMzIwLDcg
QEAgYm9vbCBSZWdFeHBPYmplY3Q6Om1hdGNoKEV4ZWNTdGF0ZSogZXhlYykKIAogICAgIGludCBw
b3NpdGlvbjsKICAgICBpbnQgbGVuZ3RoID0gMDsKLSAgICByZWdFeHBDb25zdHJ1Y3Rvci0+cGVy
Zm9ybU1hdGNoKCpnbG9iYWxEYXRhLCBkLT5yZWdFeHAuZ2V0KCksIGlucHV0LCBsYXN0SW5kZXgs
IHBvc2l0aW9uLCBsZW5ndGgpOworICAgIHJlZ0V4cENvbnN0cnVjdG9yLT5wZXJmb3JtTWF0Y2go
Kmdsb2JhbERhdGEsIG1fcmVnRXhwLmdldCgpLCBpbnB1dCwgbGFzdEluZGV4LCBwb3NpdGlvbiwg
bGVuZ3RoKTsKICAgICBpZiAocG9zaXRpb24gPCAwKSB7CiAgICAgICAgIHNldExhc3RJbmRleChl
eGVjLCAwKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHBPYmplY3QuaAppbmRleCA4ZWQyNjE4YmI4NmVkYzU5ZmVmYTIyOWNmMTc2
ZTI5YzFkMTk3YmQ5Li5kNGY5ZGFlZjVlYThjMWQ1NTk5ZTgxMzM3ZTliMzU3M2FjYjdiOWE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaApAQCAtMSw2
ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDAgSGFycmkgUG9ydGVuIChw
b3J0ZW5Aa2RlLm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDcsIDIwMDggQXBwbGUg
SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwMywgMjAwNywg
MjAwOCwgMjAxMiBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgogICogIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
ICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCkBAIC00NCwyNyArNDQsMjcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBy
ZXR1cm4gb2JqZWN0OwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBzZXRSZWdFeHAoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBSZWdFeHAqIHIpIHsgZC0+cmVnRXhwLnNldChnbG9iYWxEYXRh
LCB0aGlzLCByKTsgfQotICAgICAgICBSZWdFeHAqIHJlZ0V4cCgpIGNvbnN0IHsgcmV0dXJuIGQt
PnJlZ0V4cC5nZXQoKTsgfQorICAgICAgICB2b2lkIHNldFJlZ0V4cChKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIFJlZ0V4cCogcikgeyBtX3JlZ0V4cC5zZXQoZ2xvYmFsRGF0YSwgdGhpcywgcik7
IH0KKyAgICAgICAgUmVnRXhwKiByZWdFeHAoKSBjb25zdCB7IHJldHVybiBtX3JlZ0V4cC5nZXQo
KTsgfQogCiAgICAgICAgIHZvaWQgc2V0TGFzdEluZGV4KEV4ZWNTdGF0ZSogZXhlYywgc2l6ZV90
IGxhc3RJbmRleCkKICAgICAgICAgewotICAgICAgICAgICAgZC0+bGFzdEluZGV4LnNldFdpdGhv
dXRXcml0ZUJhcnJpZXIoanNOdW1iZXIobGFzdEluZGV4KSk7Ci0gICAgICAgICAgICBpZiAoTElL
RUxZKGQtPmxhc3RJbmRleElzV3JpdGFibGUpKQotICAgICAgICAgICAgICAgIGQtPmxhc3RJbmRl
eC5zZXRXaXRob3V0V3JpdGVCYXJyaWVyKGpzTnVtYmVyKGxhc3RJbmRleCkpOworICAgICAgICAg
ICAgbV9sYXN0SW5kZXguc2V0V2l0aG91dFdyaXRlQmFycmllcihqc051bWJlcihsYXN0SW5kZXgp
KTsKKyAgICAgICAgICAgIGlmIChMSUtFTFkobV9sYXN0SW5kZXhJc1dyaXRhYmxlKSkKKyAgICAg
ICAgICAgICAgICBtX2xhc3RJbmRleC5zZXRXaXRob3V0V3JpdGVCYXJyaWVyKGpzTnVtYmVyKGxh
c3RJbmRleCkpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHRocm93VHlwZUVy
cm9yKGV4ZWMsIFN0cmljdE1vZGVSZWFkb25seVByb3BlcnR5V3JpdGVFcnJvcik7CiAgICAgICAg
IH0KICAgICAgICAgdm9pZCBzZXRMYXN0SW5kZXgoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGxh
c3RJbmRleCwgYm9vbCBzaG91bGRUaHJvdykKICAgICAgICAgewotICAgICAgICAgICAgaWYgKExJ
S0VMWShkLT5sYXN0SW5kZXhJc1dyaXRhYmxlKSkKLSAgICAgICAgICAgICAgICBkLT5sYXN0SW5k
ZXguc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbGFzdEluZGV4KTsKKyAgICAgICAgICAg
IGlmIChMSUtFTFkobV9sYXN0SW5kZXhJc1dyaXRhYmxlKSkKKyAgICAgICAgICAgICAgICBtX2xh
c3RJbmRleC5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBsYXN0SW5kZXgpOwogICAgICAg
ICAgICAgZWxzZSBpZiAoc2hvdWxkVGhyb3cpCiAgICAgICAgICAgICAgICAgdGhyb3dUeXBlRXJy
b3IoZXhlYywgU3RyaWN0TW9kZVJlYWRvbmx5UHJvcGVydHlXcml0ZUVycm9yKTsKICAgICAgICAg
fQogICAgICAgICBKU1ZhbHVlIGdldExhc3RJbmRleCgpIGNvbnN0CiAgICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybiBkLT5sYXN0SW5kZXguZ2V0KCk7CisgICAgICAgICAgICByZXR1cm4gbV9s
YXN0SW5kZXguZ2V0KCk7CiAgICAgICAgIH0KIAogICAgICAgICBKU1ZhbHVlIHRlc3QoRXhlY1N0
YXRlKik7CkBAIC04NCw3ICs4NCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHByb3RlY3RlZDoK
ICAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgUmVnRXhwT2JqZWN0KEpTR2xvYmFsT2JqZWN0Kiwg
U3RydWN0dXJlKiwgUmVnRXhwKik7CiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZmlu
aXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqKTsKLSAgICAgICAgc3RhdGljIHZvaWQgZGVzdHJv
eShKU0NlbGwqKTsKIAogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBPdmVycmlkZXNWaXNpdENoaWxkcmVuIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90
IHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiAKQEAgLTk4LDI0ICs5NywxMiBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICBwcml2YXRlOgogICAgICAgICBib29sIG1hdGNoKEV4ZWNTdGF0ZSopOwogCi0g
ICAgICAgIHN0cnVjdCBSZWdFeHBPYmplY3REYXRhIHsKLSAgICAgICAgICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwotICAgICAgICBwdWJsaWM6Ci0gICAgICAgICAgICBSZWdFeHBPYmplY3RE
YXRhKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgUmVnRXhwT2JqZWN0KiBvd25lciwgUmVnRXhw
KiByZWdFeHApCi0gICAgICAgICAgICAgICAgOiByZWdFeHAoZ2xvYmFsRGF0YSwgb3duZXIsIHJl
Z0V4cCkKLSAgICAgICAgICAgICAgICAsIGxhc3RJbmRleElzV3JpdGFibGUodHJ1ZSkKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBsYXN0SW5kZXguc2V0V2l0aG91dFdyaXRlQmFycmll
cihqc051bWJlcigwKSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIFdyaXRlQmFycmll
cjxSZWdFeHA+IHJlZ0V4cDsKLSAgICAgICAgICAgIFdyaXRlQmFycmllcjxVbmtub3duPiBsYXN0
SW5kZXg7Ci0gICAgICAgICAgICBib29sIGxhc3RJbmRleElzV3JpdGFibGU7Ci0gICAgICAgIH07
CiAjaWYgQ09NUElMRVIoTVNWQykKICAgICAgICAgZnJpZW5kIHZvaWQgV1RGOjpkZWxldGVPd25l
ZFB0cjxSZWdFeHBPYmplY3REYXRhPihSZWdFeHBPYmplY3REYXRhKik7CiAjZW5kaWYKLSAgICAg
ICAgT3duUHRyPFJlZ0V4cE9iamVjdERhdGE+IGQ7CisgICAgICAgIFdyaXRlQmFycmllcjxSZWdF
eHA+IG1fcmVnRXhwOworICAgICAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4gbV9sYXN0SW5kZXg7
CisgICAgICAgIGJvb2wgbV9sYXN0SW5kZXhJc1dyaXRhYmxlOwogICAgIH07CiAKICAgICBSZWdF
eHBPYmplY3QqIGFzUmVnRXhwT2JqZWN0KEpTVmFsdWUpOwo=
</data>
<flag name="review"
          id="134100"
          type_id="1"
          status="+"
          setter="barraclough"
    />
          </attachment>
      

    </bug>

</bugzilla>