<?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>61476</bug_id>
          
          <creation_ts>2011-05-25 15:31:43 -0700</creation_ts>
          <short_desc>Generate regexp code lazily</short_desc>
          <delta_ts>2011-05-25 15:50:16 -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>New Bugs</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="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>409971</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-05-25 15:31:43 -0700</bug_when>
    <thetext>Generate regexp code lazily</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409972</commentid>
    <comment_count>1</comment_count>
      <attachid>94872</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-05-25 15:33:20 -0700</bug_when>
    <thetext>Created attachment 94872
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409980</commentid>
    <comment_count>2</comment_count>
      <attachid>94872</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-05-25 15:45:30 -0700</bug_when>
    <thetext>Comment on attachment 94872
Patch

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

r=me

&gt; Source/JavaScriptCore/runtime/RegExp.cpp:113
&gt; +void RegExp::recompile(JSGlobalData&amp; globalData)
&gt; +{
&gt; +    m_representation = adoptPtr(new RegExpRepresentation);
&gt; +    m_state = compile(&amp;globalData);
&gt; +}
&gt; +
&gt;  RegExp::RegExpState RegExp::compile(JSGlobalData* globalData)

I think these two functions should merge into a function called &quot;compile&quot;, and &quot;recompileIfNecessary&quot; should be &quot;compileIfNecessary&quot;, since it gets called for initial compilation, and not just recompilation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409984</commentid>
    <comment_count>3</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-05-25 15:50:16 -0700</bug_when>
    <thetext>Committed r87327: &lt;http://trac.webkit.org/changeset/87327&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94872</attachid>
            <date>2011-05-25 15:33:20 -0700</date>
            <delta_ts>2011-05-25 15:45:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61476-20110525153318.patch</filename>
            <type>text/plain</type>
            <size>13122</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODczMDgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDEx
Y2JhYTNlNGQ3YmI4MjhlNTVkZWQwNTAxNzBmMzAwZmU2MGUzYTQuLmZhYjFhMjA2OGZlNmExZDZk
ZjFmMzAyN2I0YjU1YjRiZjM4YzFiYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSw1
ICsxLDMyIEBACiAyMDExLTA1LTI1ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR2VuZXJhdGUg
cmVnZXhwIGNvZGUgbGF6aWx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02MTQ3NgorCisgICAgICAgIFJlZ0V4cCBjb25zdHJ1Y3Rpb24gbm93IHNpbXBs
eSB2YWxpZGF0ZXMgdGhlIFJlZ0V4cCwgaXQgZG9lcworICAgICAgICBub3QgcGVyZm9ybSBhY3R1
YWwgY29kZWdlbi4KKworICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwLmNwcDoKKyAgICAgICAgKEpT
Qzo6UmVnRXhwOjpSZWdFeHApOgorICAgICAgICAoSlNDOjpSZWdFeHA6OnJlY29tcGlsZSk6Cisg
ICAgICAgIChKU0M6OlJlZ0V4cDo6Y29tcGlsZSk6CisgICAgICAgIChKU0M6OlJlZ0V4cDo6bWF0
Y2gpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwLmg6CisgICAgICAgIChKU0M6OlJlZ0V4cDo6
cmVjb21waWxlSWZOZWNlc3NhcnkpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0
b3IuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwQ29uc3RydWN0b3I6OnBlcmZvcm1NYXRjaCk6Cisg
ICAgICAgICogcnVudGltZS9SZWdFeHBPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpSZWdFeHBP
YmplY3Q6Om1hdGNoKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHA6Cisg
ICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1JlcGxhY2UpOgorICAgICAgICAoSlNDOjpzdHJp
bmdQcm90b0Z1bmNNYXRjaCk6CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1NlYXJjaCk6
CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1NwbGl0KToKKworMjAxMS0wNS0yNSAgT2xp
dmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgorCiAgICAgICAgIFJldmlld2VkIGJ5IEdlb2Zm
cmV5IEdhcmVuLgogCiAgICAgICAgIE1ha2UgYWxsb2NhdGlvbnMgd2l0aCBndWFyZCBwYWdlcyBl
bnN1cmUgdGhhdCB0aGUgYWxsb2NhdGlvbiBzdWNjZWVkZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHAuY3BwCmluZGV4IDI1Y2IyZDViZTAyZGFjMDYwZjk0ZTJiMTRmNWNkZDc2
MjBjYmYwODQuLjhjOWNjMGIwN2I5OTk3MWFmM2ZkYWNhZjQzNGU1YjIyN2JmY2YxNzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcApAQCAtNzMsOCArNzMsOSBAQCBz
dHJ1Y3QgUmVnRXhwUmVwcmVzZW50YXRpb24gewogICAgIE93blB0cjxZYXJyOjpCeXRlY29kZVBh
dHRlcm4+IG1fcmVnRXhwQnl0ZWNvZGU7CiB9OwogCi1pbmxpbmUgUmVnRXhwOjpSZWdFeHAoSlNH
bG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBjb25zdCBVU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBSZWdF
eHBGbGFncyBmbGFncykKLSAgICA6IG1fcGF0dGVyblN0cmluZyhwYXR0ZXJuU3RyaW5nKQoraW5s
aW5lIFJlZ0V4cDo6UmVnRXhwKEpTR2xvYmFsRGF0YSosIGNvbnN0IFVTdHJpbmcmIHBhdHRlcm5T
dHJpbmcsIFJlZ0V4cEZsYWdzIGZsYWdzKQorICAgIDogbV9zdGF0ZShOb3RDb21waWxlZCkKKyAg
ICAsIG1fcGF0dGVyblN0cmluZyhwYXR0ZXJuU3RyaW5nKQogICAgICwgbV9mbGFncyhmbGFncykK
ICAgICAsIG1fY29uc3RydWN0aW9uRXJyb3IoMCkKICAgICAsIG1fbnVtU3VicGF0dGVybnMoMCkK
QEAgLTgyLDkgKzgzLDEyIEBAIGlubGluZSBSZWdFeHA6OlJlZ0V4cChKU0dsb2JhbERhdGEqIGds
b2JhbERhdGEsIGNvbnN0IFVTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIFJlCiAgICAgLCBtX3J0TWF0
Y2hDYWxsQ291bnQoMCkKICAgICAsIG1fcnRNYXRjaEZvdW5kQ291bnQoMCkKICNlbmRpZgotICAg
ICwgbV9yZXByZXNlbnRhdGlvbihhZG9wdFB0cihuZXcgUmVnRXhwUmVwcmVzZW50YXRpb24pKQog
ewotICAgIG1fc3RhdGUgPSBjb21waWxlKGdsb2JhbERhdGEpOworICAgIFlhcnI6OllhcnJQYXR0
ZXJuIHBhdHRlcm4obV9wYXR0ZXJuU3RyaW5nLCBpZ25vcmVDYXNlKCksIG11bHRpbGluZSgpLCAm
bV9jb25zdHJ1Y3Rpb25FcnJvcik7CisgICAgaWYgKG1fY29uc3RydWN0aW9uRXJyb3IpCisgICAg
ICAgIG1fc3RhdGUgPSBQYXJzZUVycm9yOworICAgIGVsc2UKKyAgICAgICAgbV9udW1TdWJwYXR0
ZXJucyA9IHBhdHRlcm4ubV9udW1TdWJwYXR0ZXJuczsKIH0KIAogUmVnRXhwOjp+UmVnRXhwKCkK
QEAgLTEwMCwxMyArMTA0LDIyIEBAIFBhc3NSZWZQdHI8UmVnRXhwPiBSZWdFeHA6OmNyZWF0ZShK
U0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIGNvbnN0IFVTdHJpbmcmIHBhdHRlCiAgICAgcmV0dXJu
IHJlcy5yZWxlYXNlKCk7CiB9CiAKK3ZvaWQgUmVnRXhwOjpyZWNvbXBpbGUoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhKQoreworICAgIG1fcmVwcmVzZW50YXRpb24gPSBhZG9wdFB0cihuZXcgUmVn
RXhwUmVwcmVzZW50YXRpb24pOworICAgIG1fc3RhdGUgPSBjb21waWxlKCZnbG9iYWxEYXRhKTsK
K30KKwogUmVnRXhwOjpSZWdFeHBTdGF0ZSBSZWdFeHA6OmNvbXBpbGUoSlNHbG9iYWxEYXRhKiBn
bG9iYWxEYXRhKQogeworICAgIEFTU0VSVChtX3N0YXRlID09IE5vdENvbXBpbGVkKTsKICAgICBZ
YXJyOjpZYXJyUGF0dGVybiBwYXR0ZXJuKG1fcGF0dGVyblN0cmluZywgaWdub3JlQ2FzZSgpLCBt
dWx0aWxpbmUoKSwgJm1fY29uc3RydWN0aW9uRXJyb3IpOwotICAgIGlmIChtX2NvbnN0cnVjdGlv
bkVycm9yKQorICAgIGlmIChtX2NvbnN0cnVjdGlvbkVycm9yKSB7CisgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gUGFyc2VFcnJvcjsKKyAgICB9CiAKLSAgICBt
X251bVN1YnBhdHRlcm5zID0gcGF0dGVybi5tX251bVN1YnBhdHRlcm5zOworICAgIEFTU0VSVCht
X251bVN1YnBhdHRlcm5zID09IHBhdHRlcm4ubV9udW1TdWJwYXR0ZXJucyk7CiAKICAgICBSZWdF
eHBTdGF0ZSByZXMgPSBCeXRlQ29kZTsKIApAQCAtMTMwLDcgKzE0Myw3IEBAIFJlZ0V4cDo6UmVn
RXhwU3RhdGUgUmVnRXhwOjpjb21waWxlKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSkKICAgICBy
ZXR1cm4gcmVzOwogfQogCi1pbnQgUmVnRXhwOjptYXRjaChjb25zdCBVU3RyaW5nJiBzLCBpbnQg
c3RhcnRPZmZzZXQsIFZlY3RvcjxpbnQsIDMyPiogb3ZlY3RvcikKK2ludCBSZWdFeHA6Om1hdGNo
KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgVVN0cmluZyYgcywgaW50IHN0YXJ0T2Zm
c2V0LCBWZWN0b3I8aW50LCAzMj4qIG92ZWN0b3IpCiB7CiAgICAgaWYgKHN0YXJ0T2Zmc2V0IDwg
MCkKICAgICAgICAgc3RhcnRPZmZzZXQgPSAwOwpAQCAtMTQzLDYgKzE1Niw3IEBAIGludCBSZWdF
eHA6Om1hdGNoKGNvbnN0IFVTdHJpbmcmIHMsIGludCBzdGFydE9mZnNldCwgVmVjdG9yPGludCwg
MzI+KiBvdmVjdG9yKQogICAgICAgICByZXR1cm4gLTE7CiAKICAgICBpZiAobV9zdGF0ZSAhPSBQ
YXJzZUVycm9yKSB7CisgICAgICAgIHJlY29tcGlsZUlmTmVjZXNzYXJ5KGdsb2JhbERhdGEpOwog
ICAgICAgICBpbnQgb2Zmc2V0VmVjdG9yU2l6ZSA9IChtX251bVN1YnBhdHRlcm5zICsgMSkgKiAy
OwogICAgICAgICBpbnQqIG9mZnNldFZlY3RvcjsKICAgICAgICAgVmVjdG9yPGludCwgMzI+IG5v
blJldHVybmVkT3ZlY3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmgKaW5k
ZXggMDAwYzMzYTdkYTMwMzJkODkxNjhlYTgwNTdkYWRkNjYxOTg4NjdjNC4uZGQ1ZDFkYTliZjcw
ZTg2YWE3MTlmYmE4OGRhZDNiOTdlY2JlMGNiNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGJv
b2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuICFtX2NvbnN0cnVjdGlvbkVycm9yICYmIG1fZmxh
Z3MgIT0gSW52YWxpZEZsYWdzOyB9CiAgICAgICAgIGNvbnN0IGNoYXIqIGVycm9yTWVzc2FnZSgp
IGNvbnN0IHsgcmV0dXJuIG1fY29uc3RydWN0aW9uRXJyb3I7IH0KIAotICAgICAgICBpbnQgbWF0
Y2goY29uc3QgVVN0cmluZyYsIGludCBzdGFydE9mZnNldCwgVmVjdG9yPGludCwgMzI+KiBvdmVj
dG9yID0gMCk7CisgICAgICAgIGludCBtYXRjaChKU0dsb2JhbERhdGEmLCBjb25zdCBVU3RyaW5n
JiwgaW50IHN0YXJ0T2Zmc2V0LCBWZWN0b3I8aW50LCAzMj4qIG92ZWN0b3IgPSAwKTsKICAgICAg
ICAgdW5zaWduZWQgbnVtU3VicGF0dGVybnMoKSBjb25zdCB7IHJldHVybiBtX251bVN1YnBhdHRl
cm5zOyB9CiAgICAgICAgIAogI2lmIEVOQUJMRShSRUdFWFBfVFJBQ0lORykKQEAgLTYyLDEwICs2
MiwxOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgZW51bSBSZWdFeHBTdGF0ZSB7CiAgICAg
ICAgICAgICBQYXJzZUVycm9yLAogICAgICAgICAgICAgSklUQ29kZSwKLSAgICAgICAgICAgIEJ5
dGVDb2RlCisgICAgICAgICAgICBCeXRlQ29kZSwKKyAgICAgICAgICAgIE5vdENvbXBpbGVkCiAg
ICAgICAgIH0gbV9zdGF0ZTsKIAogICAgICAgICBSZWdFeHBTdGF0ZSBjb21waWxlKEpTR2xvYmFs
RGF0YSopOworICAgICAgICB2b2lkIHJlY29tcGlsZUlmTmVjZXNzYXJ5KEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKG1fcmVwcmVzZW50YXRpb24p
CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgcmVjb21waWxlKGdsb2JhbERh
dGEpOworICAgICAgICB9CisgICAgICAgIHZvaWQgcmVjb21waWxlKEpTR2xvYmFsRGF0YSYpOwog
CiAjaWYgRU5BQkxFKFlBUlJfSklUX0RFQlVHKQogICAgICAgICB2b2lkIG1hdGNoQ29tcGFyZVdp
dGhJbnRlcnByZXRlcihjb25zdCBVU3RyaW5nJiwgaW50IHN0YXJ0T2Zmc2V0LCBpbnQqIG9mZnNl
dFZlY3RvciwgaW50IGppdFJlc3VsdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaAppbmRleCA1NDg2NjRlNTg0ZmUxMjY2ZjczODNiN2E0
MTkzYmIwZTEwNzRiNmZhLi4xZDAyZTZmZjdjZmM0MTU1NDU3OTMxYTExZTkyNWQxNjRlZGI1ODBi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1
Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVj
dG9yLmgKQEAgLTcwLDcgKzcwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGlj
IGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKLSAgICAgICAgdm9pZCBwZXJmb3JtTWF0Y2goUmVn
RXhwKiwgY29uc3QgVVN0cmluZyYsIGludCBzdGFydE9mZnNldCwgaW50JiBwb3NpdGlvbiwgaW50
JiBsZW5ndGgsIGludCoqIG92ZWN0b3IgPSAwKTsKKyAgICAgICAgdm9pZCBwZXJmb3JtTWF0Y2go
SlNHbG9iYWxEYXRhJiwgUmVnRXhwKiwgY29uc3QgVVN0cmluZyYsIGludCBzdGFydE9mZnNldCwg
aW50JiBwb3NpdGlvbiwgaW50JiBsZW5ndGgsIGludCoqIG92ZWN0b3IgPSAwKTsKICAgICAgICAg
SlNPYmplY3QqIGFycmF5T2ZNYXRjaGVzKEV4ZWNTdGF0ZSopIGNvbnN0OwogCiAgICAgICAgIHZv
aWQgc2V0SW5wdXQoY29uc3QgVVN0cmluZyYpOwpAQCAtMTA5LDkgKzEwOSw5IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgZXhwcmVzc2lvbiBtYXRjaGluZyB0aHJvdWdoIHRoZSBwZXJmb3JtTWF0
Y2ggZnVuY3Rpb24uIFdlIHVzZSBjYWNoZWQgcmVzdWx0cyB0byBjYWxjdWxhdGUsIAogICAgICAg
ZS5nLiwgUmVnRXhwLmxhc3RNYXRjaCBhbmQgUmVnRXhwLmxlZnRQYXJlbi4KICAgICAqLwotICAg
IEFMV0FZU19JTkxJTkUgdm9pZCBSZWdFeHBDb25zdHJ1Y3Rvcjo6cGVyZm9ybU1hdGNoKFJlZ0V4
cCogciwgY29uc3QgVVN0cmluZyYgcywgaW50IHN0YXJ0T2Zmc2V0LCBpbnQmIHBvc2l0aW9uLCBp
bnQmIGxlbmd0aCwgaW50Kiogb3ZlY3RvcikKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgUmVnRXhw
Q29uc3RydWN0b3I6OnBlcmZvcm1NYXRjaChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFJlZ0V4
cCogciwgY29uc3QgVVN0cmluZyYgcywgaW50IHN0YXJ0T2Zmc2V0LCBpbnQmIHBvc2l0aW9uLCBp
bnQmIGxlbmd0aCwgaW50Kiogb3ZlY3RvcikKICAgICB7Ci0gICAgICAgIHBvc2l0aW9uID0gci0+
bWF0Y2gocywgc3RhcnRPZmZzZXQsICZkLT50ZW1wT3ZlY3RvcigpKTsKKyAgICAgICAgcG9zaXRp
b24gPSByLT5tYXRjaChnbG9iYWxEYXRhLCBzLCBzdGFydE9mZnNldCwgJmQtPnRlbXBPdmVjdG9y
KCkpOwogCiAgICAgICAgIGlmIChvdmVjdG9yKQogICAgICAgICAgICAgKm92ZWN0b3IgPSBkLT50
ZW1wT3ZlY3RvcigpLmRhdGEoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZ0V4cE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBPYmplY3QuY3BwCmluZGV4IGMwMjMzNDk2MWYyNWI2MWE1MzcwZmUyNDUzNTI1OWRlMDlh
MDhlNTguLmJlMTJmZWExOGQ5ODVlNDEzNzM5OGI5NmVlZTE0MmJmYmE3NTkwZTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcApAQCAtMTQ0LDEx
ICsxNDQsMTEgQEAgYm9vbCBSZWdFeHBPYmplY3Q6Om1hdGNoKEV4ZWNTdGF0ZSogZXhlYykKIHsK
ICAgICBSZWdFeHBDb25zdHJ1Y3RvciogcmVnRXhwQ29uc3RydWN0b3IgPSBleGVjLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCktPnJlZ0V4cENvbnN0cnVjdG9yKCk7CiAgICAgVVN0cmluZyBpbnB1dCA9
IGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpOwotCisgICAgSlNHbG9iYWxEYXRhKiBn
bG9iYWxEYXRhID0gJmV4ZWMtPmdsb2JhbERhdGEoKTsKICAgICBpZiAoIXJlZ0V4cCgpLT5nbG9i
YWwoKSkgewogICAgICAgICBpbnQgcG9zaXRpb247CiAgICAgICAgIGludCBsZW5ndGg7Ci0gICAg
ICAgIHJlZ0V4cENvbnN0cnVjdG9yLT5wZXJmb3JtTWF0Y2goZC0+cmVnRXhwLmdldCgpLCBpbnB1
dCwgMCwgcG9zaXRpb24sIGxlbmd0aCk7CisgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yLT5wZXJm
b3JtTWF0Y2goKmdsb2JhbERhdGEsIGQtPnJlZ0V4cC5nZXQoKSwgaW5wdXQsIDAsIHBvc2l0aW9u
LCBsZW5ndGgpOwogICAgICAgICByZXR1cm4gcG9zaXRpb24gPj0gMDsKICAgICB9CiAKQEAgLTE3
MSw3ICsxNzEsNyBAQCBib29sIFJlZ0V4cE9iamVjdDo6bWF0Y2goRXhlY1N0YXRlKiBleGVjKQog
CiAgICAgaW50IHBvc2l0aW9uOwogICAgIGludCBsZW5ndGggPSAwOwotICAgIHJlZ0V4cENvbnN0
cnVjdG9yLT5wZXJmb3JtTWF0Y2goZC0+cmVnRXhwLmdldCgpLCBpbnB1dCwgbGFzdEluZGV4LCBw
b3NpdGlvbiwgbGVuZ3RoKTsKKyAgICByZWdFeHBDb25zdHJ1Y3Rvci0+cGVyZm9ybU1hdGNoKCpn
bG9iYWxEYXRhLCBkLT5yZWdFeHAuZ2V0KCksIGlucHV0LCBsYXN0SW5kZXgsIHBvc2l0aW9uLCBs
ZW5ndGgpOwogICAgIGlmIChwb3NpdGlvbiA8IDApIHsKICAgICAgICAgc2V0TGFzdEluZGV4KDAp
OwogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAppbmRleCA0Mjk5MzQ0NWFjOWYxMGMyMGFjYjIwN2Yw
NjUyMDRiZjM2OGRmNzU5Li5kMjEyOWUyNWYxZGM2YTEwNmM1ZDUzZjc1NTM4NmRhMTUxMzM0OTI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5
cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlw
ZS5jcHAKQEAgLTMwMCw2ICszMDAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0
cmluZ1Byb3RvRnVuY1JlcGxhY2UoRXhlY1N0YXRlKiBleGVjKQogICAgIEpTU3RyaW5nKiBzb3Vy
Y2VWYWwgPSB0aGlzVmFsdWUudG9UaGlzSlNTdHJpbmcoZXhlYyk7CiAgICAgSlNWYWx1ZSBwYXR0
ZXJuID0gZXhlYy0+YXJndW1lbnQoMCk7CiAgICAgSlNWYWx1ZSByZXBsYWNlbWVudCA9IGV4ZWMt
PmFyZ3VtZW50KDEpOworICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSA9ICZleGVjLT5nbG9i
YWxEYXRhKCk7CiAKICAgICBVU3RyaW5nIHJlcGxhY2VtZW50U3RyaW5nOwogICAgIENhbGxEYXRh
IGNhbGxEYXRhOwpAQCAtMzM1LDcgKzMzNiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgc3RyaW5nUHJvdG9GdW5jUmVwbGFjZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICAg
ICAgaW50IG1hdGNoSW5kZXg7CiAgICAgICAgICAgICAgICAgaW50IG1hdGNoTGVuID0gMDsKICAg
ICAgICAgICAgICAgICBpbnQqIG92ZWN0b3I7Ci0gICAgICAgICAgICAgICAgcmVnRXhwQ29uc3Ry
dWN0b3ItPnBlcmZvcm1NYXRjaChyZWcsIHNvdXJjZSwgc3RhcnRQb3NpdGlvbiwgbWF0Y2hJbmRl
eCwgbWF0Y2hMZW4sICZvdmVjdG9yKTsKKyAgICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3Rv
ci0+cGVyZm9ybU1hdGNoKCpnbG9iYWxEYXRhLCByZWcsIHNvdXJjZSwgc3RhcnRQb3NpdGlvbiwg
bWF0Y2hJbmRleCwgbWF0Y2hMZW4sICZvdmVjdG9yKTsKICAgICAgICAgICAgICAgICBpZiAobWF0
Y2hJbmRleCA8IDApCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCkBAIC0zODAsNyArMzgx
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNSZXBsYWNl
KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgICAgICBpbnQgbWF0Y2hJbmRleDsKICAgICAg
ICAgICAgICAgICBpbnQgbWF0Y2hMZW4gPSAwOwogICAgICAgICAgICAgICAgIGludCogb3ZlY3Rv
cjsKLSAgICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3Rvci0+cGVyZm9ybU1hdGNoKHJlZywg
c291cmNlLCBzdGFydFBvc2l0aW9uLCBtYXRjaEluZGV4LCBtYXRjaExlbiwgJm92ZWN0b3IpOwor
ICAgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yLT5wZXJmb3JtTWF0Y2goKmdsb2JhbERh
dGEsIHJlZywgc291cmNlLCBzdGFydFBvc2l0aW9uLCBtYXRjaEluZGV4LCBtYXRjaExlbiwgJm92
ZWN0b3IpOwogICAgICAgICAgICAgICAgIGlmIChtYXRjaEluZGV4IDwgMCkKICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAKQEAgLTYwMSw2ICs2MDIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY01hdGNoKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAo
dGhpc1ZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpIC8vIENoZWNrT2JqZWN0Q29lcmNpYmxlCiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogICAgIFVTdHJpbmcgcyA9IHRo
aXNWYWx1ZS50b1RoaXNTdHJpbmcoZXhlYyk7CisgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRh
ID0gJmV4ZWMtPmdsb2JhbERhdGEoKTsKIAogICAgIEpTVmFsdWUgYTAgPSBleGVjLT5hcmd1bWVu
dCgwKTsKIApAQCAtNjE4LDcgKzYyMCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
c3RyaW5nUHJvdG9GdW5jTWF0Y2goRXhlY1N0YXRlKiBleGVjKQogICAgIFJlZ0V4cENvbnN0cnVj
dG9yKiByZWdFeHBDb25zdHJ1Y3RvciA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+cmVn
RXhwQ29uc3RydWN0b3IoKTsKICAgICBpbnQgcG9zOwogICAgIGludCBtYXRjaExlbmd0aCA9IDA7
Ci0gICAgcmVnRXhwQ29uc3RydWN0b3ItPnBlcmZvcm1NYXRjaChyZWcuZ2V0KCksIHMsIDAsIHBv
cywgbWF0Y2hMZW5ndGgpOworICAgIHJlZ0V4cENvbnN0cnVjdG9yLT5wZXJmb3JtTWF0Y2goKmds
b2JhbERhdGEsIHJlZy5nZXQoKSwgcywgMCwgcG9zLCBtYXRjaExlbmd0aCk7CiAgICAgaWYgKCEo
cmVnLT5nbG9iYWwoKSkpIHsKICAgICAgICAgLy8gY2FzZSB3aXRob3V0ICdnJyBmbGFnIGlzIGhh
bmRsZWQgbGlrZSBSZWdFeHAucHJvdG90eXBlLmV4ZWMKICAgICAgICAgaWYgKHBvcyA8IDApCkBA
IC02MzEsNyArNjMzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90
b0Z1bmNNYXRjaChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgd2hpbGUgKHBvcyA+PSAwKSB7CiAgICAg
ICAgIGxpc3QuYXBwZW5kKGpzU3Vic3RyaW5nKGV4ZWMsIHMsIHBvcywgbWF0Y2hMZW5ndGgpKTsK
ICAgICAgICAgcG9zICs9IG1hdGNoTGVuZ3RoID09IDAgPyAxIDogbWF0Y2hMZW5ndGg7Ci0gICAg
ICAgIHJlZ0V4cENvbnN0cnVjdG9yLT5wZXJmb3JtTWF0Y2gocmVnLmdldCgpLCBzLCBwb3MsIHBv
cywgbWF0Y2hMZW5ndGgpOworICAgICAgICByZWdFeHBDb25zdHJ1Y3Rvci0+cGVyZm9ybU1hdGNo
KCpnbG9iYWxEYXRhLCByZWcuZ2V0KCksIHMsIHBvcywgcG9zLCBtYXRjaExlbmd0aCk7CiAgICAg
fQogICAgIGlmIChsaXN0LmlzRW1wdHkoKSkgewogICAgICAgICAvLyBpZiB0aGVyZSBhcmUgbm8g
bWF0Y2hlcyBhdCBhbGwsIGl0J3MgaW1wb3J0YW50IHRvIHJldHVybgpAQCAtNjQ5LDYgKzY1MSw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU2VhcmNoKEV4
ZWNTdGF0ZSogZXhlYykKICAgICBpZiAodGhpc1ZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpIC8v
IENoZWNrT2JqZWN0Q29lcmNpYmxlCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMpOwogICAgIFVTdHJpbmcgcyA9IHRoaXNWYWx1ZS50b1RoaXNTdHJpbmcoZXhlYyk7CisgICAg
SlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhID0gJmV4ZWMtPmdsb2JhbERhdGEoKTsKIAogICAgIEpT
VmFsdWUgYTAgPSBleGVjLT5hcmd1bWVudCgwKTsKIApAQCAtNjY2LDcgKzY2OSw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU2VhcmNoKEV4ZWNTdGF0ZSog
ZXhlYykKICAgICBSZWdFeHBDb25zdHJ1Y3RvciogcmVnRXhwQ29uc3RydWN0b3IgPSBleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCktPnJlZ0V4cENvbnN0cnVjdG9yKCk7CiAgICAgaW50IHBvczsK
ICAgICBpbnQgbWF0Y2hMZW5ndGggPSAwOwotICAgIHJlZ0V4cENvbnN0cnVjdG9yLT5wZXJmb3Jt
TWF0Y2gocmVnLmdldCgpLCBzLCAwLCBwb3MsIG1hdGNoTGVuZ3RoKTsKKyAgICByZWdFeHBDb25z
dHJ1Y3Rvci0+cGVyZm9ybU1hdGNoKCpnbG9iYWxEYXRhLCByZWcuZ2V0KCksIHMsIDAsIHBvcywg
bWF0Y2hMZW5ndGgpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIocG9zKSk7
CiB9CiAKQEAgLTcwMyw2ICs3MDYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0
cmluZ1Byb3RvRnVuY1NwbGl0KEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAodGhpc1ZhbHVlLmlz
VW5kZWZpbmVkT3JOdWxsKCkpIC8vIENoZWNrT2JqZWN0Q29lcmNpYmxlCiAgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwogICAgIFVTdHJpbmcgcyA9IHRoaXNWYWx1ZS50b1Ro
aXNTdHJpbmcoZXhlYyk7CisgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhID0gJmV4ZWMtPmds
b2JhbERhdGEoKTsKIAogICAgIEpTVmFsdWUgYTAgPSBleGVjLT5hcmd1bWVudCgwKTsKICAgICBK
U1ZhbHVlIGExID0gZXhlYy0+YXJndW1lbnQoMSk7CkBAIC03MTMsMTQgKzcxNywxNCBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1NwbGl0KEV4ZWNTdGF0ZSog
ZXhlYykKICAgICB1bnNpZ25lZCBsaW1pdCA9IGExLmlzVW5kZWZpbmVkKCkgPyAweEZGRkZGRkZG
VSA6IGExLnRvVUludDMyKGV4ZWMpOwogICAgIGlmIChhMC5pbmhlcml0cygmUmVnRXhwT2JqZWN0
OjpzX2luZm8pKSB7CiAgICAgICAgIFJlZ0V4cCogcmVnID0gYXNSZWdFeHBPYmplY3QoYTApLT5y
ZWdFeHAoKTsKLSAgICAgICAgaWYgKHMuaXNFbXB0eSgpICYmIHJlZy0+bWF0Y2gocywgMCkgPj0g
MCkgeworICAgICAgICBpZiAocy5pc0VtcHR5KCkgJiYgcmVnLT5tYXRjaCgqZ2xvYmFsRGF0YSwg
cywgMCkgPj0gMCkgewogICAgICAgICAgICAgLy8gZW1wdHkgc3RyaW5nIG1hdGNoZWQgYnkgcmVn
ZXhwIC0+IGVtcHR5IGFycmF5CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJl
c3VsdCk7CiAgICAgICAgIH0KICAgICAgICAgdW5zaWduZWQgcG9zID0gMDsKICAgICAgICAgd2hp
bGUgKGkgIT0gbGltaXQgJiYgcG9zIDwgcy5sZW5ndGgoKSkgewogICAgICAgICAgICAgVmVjdG9y
PGludCwgMzI+IG92ZWN0b3I7Ci0gICAgICAgICAgICBpbnQgbXBvcyA9IHJlZy0+bWF0Y2gocywg
cG9zLCAmb3ZlY3Rvcik7CisgICAgICAgICAgICBpbnQgbXBvcyA9IHJlZy0+bWF0Y2goKmdsb2Jh
bERhdGEsIHMsIHBvcywgJm92ZWN0b3IpOwogICAgICAgICAgICAgaWYgKG1wb3MgPCAwKQogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgaW50IG1sZW4gPSBvdmVjdG9yWzFdIC0g
b3ZlY3RvclswXTsK
</data>
<flag name="review"
          id="88258"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>