<?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>123629</bug_id>
          
          <creation_ts>2013-11-01 12:44:23 -0700</creation_ts>
          <short_desc>OSR exit profiling should be robust against all code being cleared</short_desc>
          <delta_ts>2013-11-01 15:09:21 -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>All</rep_platform>
          <op_sys>All</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>nrotem</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>945984</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-11-01 12:44:23 -0700</bug_when>
    <thetext>Patch forthcoming.

&lt;rdar://problem/15365476&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945986</commentid>
    <comment_count>1</comment_count>
      <attachid>215750</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-11-01 12:47:14 -0700</bug_when>
    <thetext>Created attachment 215750
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945989</commentid>
    <comment_count>2</comment_count>
    <who name="Nadav Rotem">nrotem</who>
    <bug_when>2013-11-01 13:10:32 -0700</bug_when>
    <thetext>
What do  these functions do ?

CodeBlock* baselineAlternative();

CodeBlock* baselineVersion();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945995</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-11-01 13:24:12 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; What do  these functions do ?
&gt; 

CodeBlock is an object that represents one compilation of a piece of code.  Each piece of code that we load is represented by a ScriptExecutable, and that may have zero or more CodeBlocks.  Zero CodeBlocks if the code hasn&apos;t even been parsed yet (we parse everything lazily - as late as at the time of first invocation for functions), one CodeBlock if we&apos;re just running baseline code (interpreting or baseline JIT), two CodeBlocks in the DFG case or in the FTL case but without OSR entry, or three Codeblocks in the FTL case if we have:

1) the FTL CodeBlock
2) the baseline Codeblock that we would exit to
3) the special FTL-for-OSR-entry CodeBlock for entering through some loop pre-header

&gt; CodeBlock* baselineAlternative();

Given a CodeBlock, this returns the baseline version of the CodeBlock.  In the FTL example above, each of the three CodeBlocks will return (2).

&gt; 
&gt; CodeBlock* baselineVersion();

Short version: we need to remove this but I don&apos;t want to do it in this patch.

Long version: This is basically CodeBlock::replacement()-&gt;baselineAlternative().  replacement() returns the CodeBlock that the owning ScriptExecutable claims should be used for entry on future function calls to that code.  This will return the same thing as baselineAlternative() except if we have deleted all code (this happens under memory pressure, for example - or when enabling the debugger), in which case baselineVersion() may return a newer CodeBlock.  For example you may have A-&gt;baselineVersion() where A is from before when we deleted all code, in which case this may return a newer CodeBlock B, which is from after when we deleted all code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946042</commentid>
    <comment_count>4</comment_count>
    <who name="Nadav Rotem">nrotem</who>
    <bug_when>2013-11-01 14:52:36 -0700</bug_when>
    <thetext>Okay. I will add a comment after this patch goes it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946048</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-11-01 15:09:21 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/158459</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215750</attachid>
            <date>2013-11-01 12:47:14 -0700</date>
            <delta_ts>2013-11-01 12:58:56 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>9455</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU4NDQ4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBA
CisyMDEzLTExLTAxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
T1NSIGV4aXQgcHJvZmlsaW5nIHNob3VsZCBiZSByb2J1c3QgYWdhaW5zdCBhbGwgY29kZSBiZWlu
ZyBjbGVhcmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjM2MjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE1MzY1NDc2PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgVGhlIHByb2JsZW0g
aGVyZSBpcyB0d28tZm9sZDoKKworICAgICAgICAxKSBBIHdhdGNocG9pbnQgKGkuZS4gUHJvZmls
ZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQpIG1heSBiZSBmaXJlZCBhZnRlciB3ZQor
ICAgICAgICBoYXZlIGNsZWFyZWQgdGhlIENvZGVCbG9jayBmb3IgYWxsIG9yIHNvbWUgRXhlY3V0
YWJsZXMuICBUaGlzIG1lYW5zIHRoYXQgZG9pbmcKKyAgICAgICAgY29kZUJsb2NrLT5iYXNlbGlu
ZVZlcnNpb24oKSB3b3VsZCBlaXRoZXIgY3Jhc2ggb3IgcmV0dXJuIGEgYm9ndXMgQ29kZUJsb2Nr
LCBzaW5jZQorICAgICAgICB0aGVyZSB3YXNuJ3QgYSBiYXNlbGluZSBjb2RlIGJsb2NrIHJlYWNo
YWJsZSBmcm9tIHRoZSBFeGVjdXRhYmxlIGFueW1vcmUuICBUaGUKKyAgICAgICAgc29sdXRpb24g
aXMgdGhhdCB3ZSBzaG91bGRuJ3QgYmUgYXNraW5nIGZvciB0aGUgYmFzZWxpbmUgY29kZSBibG9j
ayByZWFjaGFibGUgZnJvbQorICAgICAgICB0aGUgb3duaW5nIGV4ZWN1dGFibGUgKHdoYXQgYmFz
ZWxpbmVWZXJzaW9uIGRpZCksIGJ1dCBpbnN0ZWFkIHdlIHNob3VsZCBiZSBhc2tpbmcKKyAgICAg
ICAgZm9yIHRoZSBiYXNlbGluZSB2ZXJzaW9uIHJlYWNoYWJsZSBmcm9tIHRoZSBjb2RlIGJsb2Nr
IGJlaW5nIHdhdGNocG9pbnRlZCAoYmFzaWNhbGx5CisgICAgICAgIHdoYXQgQ29kZUJsb2NrOjph
bHRlcm5hdGl2ZSgpIGRpZCkuCisKKyAgICAgICAgMikgSWYgZGVhbGluZyB3aXRoIGlubGluZWQg
Y29kZSwgYmFzZWxpZW5Db2RlQmxvY2tGb3JPcmlnaW5BbmRCYXNlbGluZUNvZGVCbG9jaygpCisg
ICAgICAgIG1heSByZXR1cm4gbnVsbCwgZm9yIHRoZSBzYW1lIHJlYXNvbiBhcyBhYm92ZSAtIHdl
IG1pZ2h0IGhhdmUgY2xlYXJlZCB0aGUgYmFzZWxpbmUKKyAgICAgICAgY29kZWJsb2NrIGZvciB0
aGUgZXhlY3V0YWJsZSB0aGF0IHdhcyBpbmxpbmVkLiAgVGhlIHNvbHV0aW9uIGlzIHRvIGp1c3Qg
bm90IGRvCisgICAgICAgIHByb2ZpbGluZyBpZiB0aGVyZSBpc24ndCBhIGJhc2VsaW5lIGNvZGUg
YmxvY2sgYW55bW9yZS4KKworICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAg
ICAgIChKU0M6OkNvZGVCbG9jazo6YmFzZWxpbmVBbHRlcm5hdGl2ZSk6CisgICAgICAgIChKU0M6
OkNvZGVCbG9jazo6YmFzZWxpbmVWZXJzaW9uKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpq
ZXR0aXNvbik6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmg6CisgICAgICAgICogYnl0
ZWNvZGUvQ29kZUJsb2NrSmV0dGlzb25pbmdXYXRjaHBvaW50LmNwcDoKKyAgICAgICAgKEpTQzo6
Q29kZUJsb2NrSmV0dGlzb25pbmdXYXRjaHBvaW50OjpmaXJlSW50ZXJuYWwpOgorICAgICAgICAq
IGJ5dGVjb2RlL1Byb2ZpbGVkQ29kZUJsb2NrSmV0dGlzb25pbmdXYXRjaHBvaW50LmNwcDoKKyAg
ICAgICAgKEpTQzo6UHJvZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQ6OmZpcmVJ
bnRlcm5hbCk6CisgICAgICAgICogZGZnL0RGR09TUkV4aXRCYXNlLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpPU1JFeGl0QmFzZTo6Y29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNpdGVTbG93
KToKKyAgICAgICAgKiBqaXQvQXNzZW1ibHlIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OkFzc2Vt
Ymx5SGVscGVyczo6QXNzZW1ibHlIZWxwZXJzKToKKyAgICAgICAgKiBydW50aW1lL0V4ZWN1dGFi
bGUuY3BwOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGU6OmJhc2VsaW5lQ29kZUJs
b2NrRm9yKToKKwogMjAxMy0xMC0zMSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIEphdmFTY3JpcHQgcGFyc2VyIGJ1ZwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHJldmlzaW9uIDE1ODQzNikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNDY5LDIyICsyNDY5LDMzIEBAIHZvaWQgQ29kZUJsb2NrOjpzdHJvbmdseVZpc2l0V2Vha1Jl
ZmVyZW4KICNlbmRpZiAgICAKIH0KIAorQ29kZUJsb2NrKiBDb2RlQmxvY2s6OmJhc2VsaW5lQWx0
ZXJuYXRpdmUoKQoreworI2lmIEVOQUJMRShKSVQpCisgICAgQ29kZUJsb2NrKiByZXN1bHQgPSB0
aGlzOworICAgIHdoaWxlIChyZXN1bHQtPmFsdGVybmF0aXZlKCkpCisgICAgICAgIHJlc3VsdCA9
IHJlc3VsdC0+YWx0ZXJuYXRpdmUoKTsKKyAgICBSRUxFQVNFX0FTU0VSVChyZXN1bHQpOworICAg
IFJFTEVBU0VfQVNTRVJUKEpJVENvZGU6OmlzQmFzZWxpbmVDb2RlKHJlc3VsdC0+aml0VHlwZSgp
KSB8fCByZXN1bHQtPmppdFR5cGUoKSA9PSBKSVRDb2RlOjpOb25lKTsKKyAgICByZXR1cm4gcmVz
dWx0OworI2Vsc2UKKyAgICByZXR1cm4gdGhpczsKKyNlbmRpZgorfQorCiBDb2RlQmxvY2sqIENv
ZGVCbG9jazo6YmFzZWxpbmVWZXJzaW9uKCkKIHsKKyNpZiBFTkFCTEUoSklUKQogICAgIGlmIChK
SVRDb2RlOjppc0Jhc2VsaW5lQ29kZShqaXRUeXBlKCkpKQogICAgICAgICByZXR1cm4gdGhpczsK
LSNpZiBFTkFCTEUoSklUKQogICAgIENvZGVCbG9jayogcmVzdWx0ID0gcmVwbGFjZW1lbnQoKTsK
ICAgICBpZiAoIXJlc3VsdCkgewogICAgICAgICAvLyBUaGlzIGNhbiBoYXBwZW4gaWYgd2UncmUg
Y3JlYXRpbmcgdGhlIG9yaWdpbmFsIENvZGVCbG9jayBmb3IgYW4gZXhlY3V0YWJsZS4KICAgICAg
ICAgLy8gQXNzdW1lIHRoYXQgd2UncmUgdGhlIGJhc2VsaW5lIENvZGVCbG9jay4KLSAgICAgICAg
QVNTRVJUKGppdFR5cGUoKSA9PSBKSVRDb2RlOjpOb25lKTsKKyAgICAgICAgUkVMRUFTRV9BU1NF
UlQoaml0VHlwZSgpID09IEpJVENvZGU6Ok5vbmUpOwogICAgICAgICByZXR1cm4gdGhpczsKICAg
ICB9Ci0gICAgd2hpbGUgKHJlc3VsdC0+YWx0ZXJuYXRpdmUoKSkKLSAgICAgICAgcmVzdWx0ID0g
cmVzdWx0LT5hbHRlcm5hdGl2ZSgpOwotICAgIFJFTEVBU0VfQVNTRVJUKHJlc3VsdCk7Ci0gICAg
UkVMRUFTRV9BU1NFUlQoSklUQ29kZTo6aXNCYXNlbGluZUNvZGUocmVzdWx0LT5qaXRUeXBlKCkp
KTsKKyAgICByZXN1bHQgPSByZXN1bHQtPmJhc2VsaW5lQWx0ZXJuYXRpdmUoKTsKICAgICByZXR1
cm4gcmVzdWx0OwogI2Vsc2UKICAgICByZXR1cm4gdGhpczsKQEAgLTI4MDYsNiArMjgxNyw3IEBA
IERGRzo6Q2FwYWJpbGl0eUxldmVsIEZ1bmN0aW9uQ29kZUJsb2NrOjoKICAgICAgICAgcmV0dXJu
IERGRzo6ZnVuY3Rpb25Gb3JDb25zdHJ1Y3RDYXBhYmlsaXR5TGV2ZWwodGhpcyk7CiAgICAgcmV0
dXJuIERGRzo6ZnVuY3Rpb25Gb3JDYWxsQ2FwYWJpbGl0eUxldmVsKHRoaXMpOwogfQorI2VuZGlm
CiAKIHZvaWQgQ29kZUJsb2NrOjpqZXR0aXNvbihSZW9wdGltaXphdGlvbk1vZGUgbW9kZSkKIHsK
QEAgLTI4NTYsMTAgKzI4NjgsMTAgQEAgdm9pZCBDb2RlQmxvY2s6OmpldHRpc29uKFJlb3B0aW1p
emF0aW9uTQogICAgIGlmIChERkc6OnNob3VsZFNob3dEaXNhc3NlbWJseSgpKQogICAgICAgICBk
YXRhTG9nKCIgICAgRGlkIGluc3RhbGwgYmFzZWxpbmUgdmVyc2lvbiBvZiAiLCAqdGhpcywgIlxu
Iik7CiAjZWxzZSAvLyBFTkFCTEUoREZHX0pJVCkKKyAgICBVTlVTRURfUEFSQU0obW9kZSk7CiAg
ICAgVU5SRUFDSEFCTEVfRk9SX1BMQVRGT1JNKCk7CiAjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQp
CiB9Ci0jZW5kaWYKIAogSlNHbG9iYWxPYmplY3QqIENvZGVCbG9jazo6Z2xvYmFsT2JqZWN0Rm9y
KENvZGVPcmlnaW4gY29kZU9yaWdpbikKIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9Db2RlQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQ29kZUJsb2NrLmgJKHJldmlzaW9uIDE1ODQzNikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMTM2LDYgKzEz
Niw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHNwZWNpYWxpemF0aW9uRnJvbUlzQ29uc3Ry
dWN0KG1faXNDb25zdHJ1Y3Rvcik7CiAgICAgfQogICAgIAorICAgIENvZGVCbG9jayogYmFzZWxp
bmVBbHRlcm5hdGl2ZSgpOwogICAgIENvZGVCbG9jayogYmFzZWxpbmVWZXJzaW9uKCk7CiAKICAg
ICB2b2lkIHZpc2l0QWdncmVnYXRlKFNsb3RWaXNpdG9yJik7CkBAIC0yNzksOCArMjgwLDYgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gaml0VHlwZSgpID09IEpJVENvZGU6OkJhc2VsaW5lSklU
OwogICAgIH0KICAgICAKLSAgICB2b2lkIGpldHRpc29uKFJlb3B0aW1pemF0aW9uTW9kZSA9IERv
bnRDb3VudFJlb3B0aW1pemF0aW9uKTsKLSAgICAKICAgICB2aXJ0dWFsIENvZGVCbG9jayogcmVw
bGFjZW1lbnQoKSA9IDA7CiAKICAgICB2aXJ0dWFsIERGRzo6Q2FwYWJpbGl0eUxldmVsIGNhcGFi
aWxpdHlMZXZlbEludGVybmFsKCkgPSAwOwpAQCAtMjk2LDYgKzI5NSw4IEBAIHB1YmxpYzoKICAg
ICBib29sIGhhc09wdGltaXplZFJlcGxhY2VtZW50KCk7IC8vIHRoZSB0eXBlVG9SZXBsYWNlIGlz
IG15IEpJVFR5cGUKICNlbmRpZgogCisgICAgdm9pZCBqZXR0aXNvbihSZW9wdGltaXphdGlvbk1v
ZGUgPSBEb250Q291bnRSZW9wdGltaXphdGlvbik7CisgICAgCiAgICAgU2NyaXB0RXhlY3V0YWJs
ZSogb3duZXJFeGVjdXRhYmxlKCkgY29uc3QgeyByZXR1cm4gbV9vd25lckV4ZWN1dGFibGUuZ2V0
KCk7IH0KIAogICAgIHZvaWQgc2V0Vk0oVk0qIHZtKSB7IG1fdm0gPSB2bTsgfQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2lu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVC
bG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludC5jcHAJKHJldmlzaW9uIDE1ODQzNikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw5ICszNiw3IEBAIHZvaWQgQ29kZUJsb2NrSmV0dGlz
b25pbmdXYXRjaHBvaW50OjpmaXIKICAgICBpZiAoREZHOjpzaG91bGRTaG93RGlzYXNzZW1ibHko
KSkKICAgICAgICAgZGF0YUxvZygiRmlyaW5nIHdhdGNocG9pbnQgIiwgUmF3UG9pbnRlcih0aGlz
KSwgIiBvbiAiLCAqbV9jb2RlQmxvY2ssICJcbiIpOwogCi0jaWYgRU5BQkxFKEpJVCkKICAgICBt
X2NvZGVCbG9jay0+amV0dGlzb24oQ291bnRSZW9wdGltaXphdGlvbik7Ci0jZW5kaWYKIAogICAg
IGlmIChpc09uTGlzdCgpKQogICAgICAgICByZW1vdmUoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Qcm9maWxlZENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Byb2ZpbGVk
Q29kZUJsb2NrSmV0dGlzb25pbmdXYXRjaHBvaW50LmNwcAkocmV2aXNpb24gMTU4NDM2KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Byb2ZpbGVkQ29kZUJsb2NrSmV0dGlzb25p
bmdXYXRjaHBvaW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsMTQgKzQwLDE4IEBAIHZvaWQg
UHJvZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG8KICAgICAgICAgICAgIG1fZXhpdEtp
bmQsICIgYXQgIiwgbV9jb2RlT3JpZ2luLCAiXG4iKTsKICAgICB9CiAgICAgCi0gICAgYmFzZWxp
bmVDb2RlQmxvY2tGb3JPcmlnaW5BbmRCYXNlbGluZUNvZGVCbG9jaygKLSAgICAgICAgbV9jb2Rl
T3JpZ2luLCBtX2NvZGVCbG9jay0+YmFzZWxpbmVWZXJzaW9uKCkpLT5hZGRGcmVxdWVudEV4aXRT
aXRlKAorICAgIENvZGVCbG9jayogbWFjaGluZUJhc2VsaW5lQ29kZUJsb2NrID0gbV9jb2RlQmxv
Y2stPmJhc2VsaW5lQWx0ZXJuYXRpdmUoKTsKKyAgICBDb2RlQmxvY2sqIHNvdXJjZUJhc2VsaW5l
Q29kZUJsb2NrID0KKyAgICAgICAgYmFzZWxpbmVDb2RlQmxvY2tGb3JPcmlnaW5BbmRCYXNlbGlu
ZUNvZGVCbG9jaygKKyAgICAgICAgICAgIG1fY29kZU9yaWdpbiwgbWFjaGluZUJhc2VsaW5lQ29k
ZUJsb2NrKTsKKyAgICAKKyAgICBpZiAoc291cmNlQmFzZWxpbmVDb2RlQmxvY2spIHsKKyAgICAg
ICAgc291cmNlQmFzZWxpbmVDb2RlQmxvY2stPmFkZEZyZXF1ZW50RXhpdFNpdGUoCiAgICAgICAg
ICAgICBERkc6OkZyZXF1ZW50RXhpdFNpdGUobV9jb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgsIG1f
ZXhpdEtpbmQpKTsKKyAgICB9CiAgICAgCi0jaWYgRU5BQkxFKEpJVCkKICAgICBtX2NvZGVCbG9j
ay0+amV0dGlzb24oQ291bnRSZW9wdGltaXphdGlvbik7Ci0jZW5kaWYKLQorICAgIAogICAgIGlm
IChpc09uTGlzdCgpKQogICAgICAgICByZW1vdmUoKTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHT1NSRXhpdEJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdEJhc2UuY3BwCShyZXZpc2lvbiAxNTg0MzYpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRCYXNlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzcsOCArMzcsMTIgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCiBi
b29sIE9TUkV4aXRCYXNlOjpjb25zaWRlckFkZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZVNsb3coQ29k
ZUJsb2NrKiBwcm9maWxlZENvZGVCbG9jaykKIHsKLSAgICByZXR1cm4gYmFzZWxpbmVDb2RlQmxv
Y2tGb3JPcmlnaW5BbmRCYXNlbGluZUNvZGVCbG9jaygKLSAgICAgICAgbV9jb2RlT3JpZ2luRm9y
RXhpdFByb2ZpbGUsIHByb2ZpbGVkQ29kZUJsb2NrKS0+YWRkRnJlcXVlbnRFeGl0U2l0ZSgKKyAg
ICBDb2RlQmxvY2sqIHNvdXJjZVByb2ZpbGVkQ29kZUJsb2NrID0KKyAgICAgICAgYmFzZWxpbmVD
b2RlQmxvY2tGb3JPcmlnaW5BbmRCYXNlbGluZUNvZGVCbG9jaygKKyAgICAgICAgICAgIG1fY29k
ZU9yaWdpbkZvckV4aXRQcm9maWxlLCBwcm9maWxlZENvZGVCbG9jayk7CisgICAgaWYgKCFzb3Vy
Y2VQcm9maWxlZENvZGVCbG9jaykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBz
b3VyY2VQcm9maWxlZENvZGVCbG9jay0+YWRkRnJlcXVlbnRFeGl0U2l0ZSgKICAgICAgICAgICAg
IEZyZXF1ZW50RXhpdFNpdGUobV9jb2RlT3JpZ2luRm9yRXhpdFByb2ZpbGUuYnl0ZWNvZGVJbmRl
eCwgbV9raW5kKSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1i
bHlIZWxwZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3Nl
bWJseUhlbHBlcnMuaAkocmV2aXNpb24gMTU4NDM2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9Bc3NlbWJseUhlbHBlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBAQCBw
dWJsaWM6CiAgICAgQXNzZW1ibHlIZWxwZXJzKFZNKiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2sp
CiAgICAgICAgIDogbV92bSh2bSkKICAgICAgICAgLCBtX2NvZGVCbG9jayhjb2RlQmxvY2spCi0g
ICAgICAgICwgbV9iYXNlbGluZUNvZGVCbG9jayhjb2RlQmxvY2sgPyBjb2RlQmxvY2stPmJhc2Vs
aW5lVmVyc2lvbigpIDogMCkKKyAgICAgICAgLCBtX2Jhc2VsaW5lQ29kZUJsb2NrKGNvZGVCbG9j
ayA/IGNvZGVCbG9jay0+YmFzZWxpbmVBbHRlcm5hdGl2ZSgpIDogMCkKICAgICB7CiAgICAgICAg
IGlmIChtX2NvZGVCbG9jaykgewogICAgICAgICAgICAgQVNTRVJUKG1fYmFzZWxpbmVDb2RlQmxv
Y2spOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5j
cHAJKHJldmlzaW9uIDE1ODQzNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4
ZWN1dGFibGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MTAsMTEgKzUxMCw3IEBAIEZ1bmN0aW9u
Q29kZUJsb2NrKiBGdW5jdGlvbkV4ZWN1dGFibGU6OmIKICAgICB9CiAgICAgaWYgKCFyZXN1bHQp
CiAgICAgICAgIHJldHVybiAwOwotICAgIHdoaWxlIChyZXN1bHQtPmFsdGVybmF0aXZlKCkpCi0g
ICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PEZ1bmN0aW9uQ29kZUJsb2NrKj4ocmVzdWx0LT5h
bHRlcm5hdGl2ZSgpKTsKLSAgICBSRUxFQVNFX0FTU0VSVChyZXN1bHQpOwotICAgIEFTU0VSVChK
SVRDb2RlOjppc0Jhc2VsaW5lQ29kZShyZXN1bHQtPmppdFR5cGUoKSkpOwotICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEZ1bmN0aW9uQ29kZUJsb2NrKj4ocmVzdWx0
LT5iYXNlbGluZUFsdGVybmF0aXZlKCkpOwogfQogCiB2b2lkIEZ1bmN0aW9uRXhlY3V0YWJsZTo6
dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQo=
</data>
<flag name="review"
          id="238560"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
      

    </bug>

</bugzilla>