<?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>72337</bug_id>
          
          <creation_ts>2011-11-14 17:25:57 -0800</creation_ts>
          <short_desc>De-virtualize ExecutableBase::clearCodeVirtual</short_desc>
          <delta_ts>2011-11-16 12:50:44 -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="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>502523</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-11-14 17:25:57 -0800</bug_when>
    <thetext>We can give explicit finalizers to all of the Executable classes that call static versions of clearCode.  That is effectively the behavior already, although we do it with a virtual call rather than having a unique finalize method for each subclass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503379</commentid>
    <comment_count>1</comment_count>
      <attachid>115268</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-11-15 16:00:04 -0800</bug_when>
    <thetext>Created attachment 115268
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503391</commentid>
    <comment_count>2</comment_count>
      <attachid>115268</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-11-15 16:04:25 -0800</bug_when>
    <thetext>Comment on attachment 115268
Patch

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

&gt; Source/JavaScriptCore/runtime/Executable.cpp:90
&gt; +    NativeExecutable* thisObject = jsCast&lt;NativeExecutable*&gt;(cell);
&gt; +    thisObject-&gt;clearCode();

Not sure the local variable adds much.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504156</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-11-16 12:50:44 -0800</bug_when>
    <thetext>Committed r100493: &lt;http://trac.webkit.org/changeset/100493&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115268</attachid>
            <date>2011-11-15 16:00:04 -0800</date>
            <delta_ts>2011-11-15 16:04:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72337-20111115160003.patch</filename>
            <type>text/plain</type>
            <size>10260</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwMTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
MjgyZWJmOTA2OTY5M2E2MGVjNjEzOTdlNDhjNzYzODFkMDI2ZWU1Li5lNjAzOTQ5YWUxMTFhNzE5
ODhmMTFkZDRmNDMxMWE1ZTM5NWEyZDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAxMS0xMS0xNCAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBw
bGUuY29tPgorCisgICAgICAgIERlLXZpcnR1YWxpemUgRXhlY3V0YWJsZUJhc2U6OmNsZWFyQ29k
ZVZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTcyMzM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkZWQgc3RhdGljIGZpbmFsaXplIGZ1bmN0aW9ucyB0byB0aGUgc3ViY2xhc3NlcyBvZiBFeGVj
dXRhYmxlQmFzZSB0aGF0IHByb3ZpZGUgYW4gaW1wbGVtZW50YXRpb24gCisgICAgICAgIG9mIGNs
ZWFyQ29kZVZpcnR1YWwsIGNoYW5nZWQgYWxsIG9mIHRoZSBjbGVhckNvZGVWaXJ0dWFsIG1ldGhv
ZHMgdG8gbm9uLXZpcnR1YWwgY2xlYXJDb2RlIG1ldGhvZCwKKyAgICAgICAgYW5kIGhhZCB0aGUg
ZmluYWxpemUgZnVuY3Rpb25zIGNhbGwgdGhlIGNvcnJlc3BvbmRpbmcgY2xlYXJDb2RlIG1ldGhv
ZHMuCisKKyAgICAgICAgKiBydW50aW1lL0V4ZWN1dGFibGUuY3BwOgorICAgICAgICAoSlNDOjpF
eGVjdXRhYmxlQmFzZTo6ZmluYWxpemUpOgorICAgICAgICAoSlNDOjpFeGVjdXRhYmxlQmFzZTo6
Y2xlYXJDb2RlKToKKyAgICAgICAgKEpTQzo6RXZhbEV4ZWN1dGFibGU6OmZpbmFsaXplKToKKyAg
ICAgICAgKEpTQzo6RXZhbEV4ZWN1dGFibGU6OmNsZWFyQ29kZSk6CisgICAgICAgIChKU0M6OlBy
b2dyYW1FeGVjdXRhYmxlOjpmaW5hbGl6ZSk6CisgICAgICAgIChKU0M6OlByb2dyYW1FeGVjdXRh
YmxlOjpjbGVhckNvZGUpOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGU6OmRpc2Nh
cmRDb2RlKToKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlOjpmaW5hbGl6ZSk6Cisg
ICAgICAgIChKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZTo6Y2xlYXJDb2RlKToKKyAgICAgICAgKiBy
dW50aW1lL0V4ZWN1dGFibGUuaDoKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUJhc2U6OmZpbmlz
aENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUJhc2U6OmNyZWF0ZSk6CisgICAg
ICAgIChKU0M6Ok5hdGl2ZUV4ZWN1dGFibGU6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkV2YWxF
eGVjdXRhYmxlOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpQcm9ncmFtRXhlY3V0YWJsZTo6Y3Jl
YXRlKToKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlOjpjcmVhdGUpOgorCiAyMDEx
LTExLTE0ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVtb3Zl
IHRoZSBDU1MzX0ZMRVhCT1ggY29tcGlsZSB0aW1lIGZsYWcgYW5kIGVuYWJsZSBvbiBhbGwgcG9y
dHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKaW5kZXgg
YTEzNmMwNjYwMGQwZTA2YmMwNTAyOGQ1NGYwZGQyYTQ0ZjBmNzQ2MC4uMTVlYjdjNjYzNjc1YjFl
MDhkMTI1Nzc2M2Q0ZDViZjdkZDAyNGJhNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRXhlY3V0YWJsZS5jcHAKQEAgLTM4LDEyICszOCw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
CiBjb25zdCBDbGFzc0luZm8gRXhlY3V0YWJsZUJhc2U6OnNfaW5mbyA9IHsgIkV4ZWN1dGFibGUi
LCAwLCAwLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEV4ZWN1dGFibGVCYXNlKSB9OwogCi12b2lk
IEV4ZWN1dGFibGVCYXNlOjpjbGVhckNvZGUoSlNDZWxsKiBjZWxsKQotewotICAgIGpzQ2FzdDxF
eGVjdXRhYmxlQmFzZSo+KGNlbGwpLT5jbGVhckNvZGVWaXJ0dWFsKCk7Ci19Ci0KLXZvaWQgRXhl
Y3V0YWJsZUJhc2U6OmNsZWFyQ29kZVZpcnR1YWwoKQoraW5saW5lIHZvaWQgRXhlY3V0YWJsZUJh
c2U6OmNsZWFyQ29kZSgpCiB7CiAjaWYgRU5BQkxFKEpJVCkKICAgICBtX2ppdENvZGVGb3JDYWxs
LmNsZWFyKCk7CkBAIC04OSw2ICs4NCwxMiBAQCBzdGF0aWMgdm9pZCBqZXR0aXNvbkNvZGVCbG9j
ayhKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIE93blB0cjxUPiYgY29kZUJsb2NrKQogfQogI2Vu
ZGlmCiAKK3ZvaWQgTmF0aXZlRXhlY3V0YWJsZTo6ZmluYWxpemUoSlNDZWxsKiBjZWxsKQorewor
ICAgIE5hdGl2ZUV4ZWN1dGFibGUqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8TmF0aXZlRXhlY3V0YWJs
ZSo+KGNlbGwpOworICAgIHRoaXNPYmplY3QtPmNsZWFyQ29kZSgpOworfQorCiBjb25zdCBDbGFz
c0luZm8gU2NyaXB0RXhlY3V0YWJsZTo6c19pbmZvID0geyAiU2NyaXB0RXhlY3V0YWJsZSIsICZF
eGVjdXRhYmxlQmFzZTo6c19pbmZvLCAwLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFNjcmlwdEV4
ZWN1dGFibGUpIH07CiAKIGNvbnN0IENsYXNzSW5mbyBFdmFsRXhlY3V0YWJsZTo6c19pbmZvID0g
eyAiRXZhbEV4ZWN1dGFibGUiLCAmU2NyaXB0RXhlY3V0YWJsZTo6c19pbmZvLCAwLCAwLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEV2YWxFeGVjdXRhYmxlKSB9OwpAQCAtMjU2LDEzICsyNTcsMTkgQEAg
dm9pZCBFdmFsRXhlY3V0YWJsZTo6dW5saW5rQ2FsbHMoKQogI2VuZGlmCiB9CiAKLXZvaWQgRXZh
bEV4ZWN1dGFibGU6OmNsZWFyQ29kZVZpcnR1YWwoKQordm9pZCBFdmFsRXhlY3V0YWJsZTo6Zmlu
YWxpemUoSlNDZWxsKiBjZWxsKQoreworICAgIEV2YWxFeGVjdXRhYmxlKiB0aGlzT2JqZWN0ID0g
anNDYXN0PEV2YWxFeGVjdXRhYmxlKj4oY2VsbCk7CisgICAgdGhpc09iamVjdC0+Y2xlYXJDb2Rl
KCk7Cit9CisKK2lubGluZSB2b2lkIEV2YWxFeGVjdXRhYmxlOjpjbGVhckNvZGUoKQogewogICAg
IGlmIChtX2V2YWxDb2RlQmxvY2spIHsKICAgICAgICAgbV9ldmFsQ29kZUJsb2NrLT5jbGVhckV2
YWxDYWNoZSgpOwogICAgICAgICBtX2V2YWxDb2RlQmxvY2suY2xlYXIoKTsKICAgICB9Ci0gICAg
QmFzZTo6Y2xlYXJDb2RlVmlydHVhbCgpOworICAgIEJhc2U6OmNsZWFyQ29kZSgpOwogfQogCiBK
U09iamVjdCogUHJvZ3JhbUV4ZWN1dGFibGU6OmNoZWNrU3ludGF4KEV4ZWNTdGF0ZSogZXhlYykK
QEAgLTM5NSwxMyArNDAyLDE5IEBAIHZvaWQgUHJvZ3JhbUV4ZWN1dGFibGU6OnZpc2l0Q2hpbGRy
ZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICAgICAgdGhpc09iamVj
dC0+bV9wcm9ncmFtQ29kZUJsb2NrLT52aXNpdEFnZ3JlZ2F0ZSh2aXNpdG9yKTsKIH0KIAotdm9p
ZCBQcm9ncmFtRXhlY3V0YWJsZTo6Y2xlYXJDb2RlVmlydHVhbCgpCit2b2lkIFByb2dyYW1FeGVj
dXRhYmxlOjpmaW5hbGl6ZShKU0NlbGwqIGNlbGwpCit7CisgICAgUHJvZ3JhbUV4ZWN1dGFibGUq
IHRoaXNPYmplY3QgPSBqc0Nhc3Q8UHJvZ3JhbUV4ZWN1dGFibGUqPihjZWxsKTsKKyAgICB0aGlz
T2JqZWN0LT5jbGVhckNvZGUoKTsKK30KKworaW5saW5lIHZvaWQgUHJvZ3JhbUV4ZWN1dGFibGU6
OmNsZWFyQ29kZSgpCiB7CiAgICAgaWYgKG1fcHJvZ3JhbUNvZGVCbG9jaykgewogICAgICAgICBt
X3Byb2dyYW1Db2RlQmxvY2stPmNsZWFyRXZhbENhY2hlKCk7CiAgICAgICAgIG1fcHJvZ3JhbUNv
ZGVCbG9jay5jbGVhcigpOwogICAgIH0KLSAgICBCYXNlOjpjbGVhckNvZGVWaXJ0dWFsKCk7Cisg
ICAgQmFzZTo6Y2xlYXJDb2RlKCk7CiB9CiAKIEZ1bmN0aW9uQ29kZUJsb2NrKiBGdW5jdGlvbkV4
ZWN1dGFibGU6OmJhc2VsaW5lQ29kZUJsb2NrRm9yKENvZGVTcGVjaWFsaXphdGlvbktpbmQga2lu
ZCkKQEAgLTY1NCwxMCArNjY3LDE2IEBAIHZvaWQgRnVuY3Rpb25FeGVjdXRhYmxlOjpkaXNjYXJk
Q29kZSgpCiAgICAgaWYgKCFtX2ppdENvZGVGb3JDb25zdHJ1Y3QgJiYgbV9jb2RlQmxvY2tGb3JD
b25zdHJ1Y3QpCiAgICAgICAgIHJldHVybjsKICNlbmRpZgotICAgIGNsZWFyQ29kZVZpcnR1YWwo
KTsKKyAgICBjbGVhckNvZGUoKTsKK30KKwordm9pZCBGdW5jdGlvbkV4ZWN1dGFibGU6OmZpbmFs
aXplKEpTQ2VsbCogY2VsbCkKK3sKKyAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIHRoaXNPYmplY3Qg
PSBqc0Nhc3Q8RnVuY3Rpb25FeGVjdXRhYmxlKj4oY2VsbCk7CisgICAgdGhpc09iamVjdC0+Y2xl
YXJDb2RlKCk7CiB9CiAKLXZvaWQgRnVuY3Rpb25FeGVjdXRhYmxlOjpjbGVhckNvZGVWaXJ0dWFs
KCkKK2lubGluZSB2b2lkIEZ1bmN0aW9uRXhlY3V0YWJsZTo6Y2xlYXJDb2RlKCkKIHsKICAgICBp
ZiAobV9jb2RlQmxvY2tGb3JDYWxsKSB7CiAgICAgICAgIG1fY29kZUJsb2NrRm9yQ2FsbC0+Y2xl
YXJFdmFsQ2FjaGUoKTsKQEAgLTY2Nyw3ICs2ODYsNyBAQCB2b2lkIEZ1bmN0aW9uRXhlY3V0YWJs
ZTo6Y2xlYXJDb2RlVmlydHVhbCgpCiAgICAgICAgIG1fY29kZUJsb2NrRm9yQ29uc3RydWN0LT5j
bGVhckV2YWxDYWNoZSgpOwogICAgICAgICBtX2NvZGVCbG9ja0ZvckNvbnN0cnVjdC5jbGVhcigp
OwogICAgIH0KLSAgICBCYXNlOjpjbGVhckNvZGVWaXJ0dWFsKCk7CisgICAgQmFzZTo6Y2xlYXJD
b2RlKCk7CiB9CiAKIHZvaWQgRnVuY3Rpb25FeGVjdXRhYmxlOjp1bmxpbmtDYWxscygpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgKaW5kZXggYjRjZTNlNGI2OGVl
MjIyOWM1YTZkZjMwYjZjMDFjNjgzZDlhMmY3MC4uZGI5ZmE0MmYzYjI4ZmZkMDhlZjlhZWQ0M2Nj
ZGNlZWQzMzZmYzNkMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXhlY3V0YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFi
bGUuaApAQCAtNzIsMTkgKzcyLDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGZp
bmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKICAgICAgICAgewogICAgICAg
ICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7Ci0gICAgICAgICAgICBnbG9i
YWxEYXRhLmhlYXAuYWRkRmluYWxpemVyKHRoaXMsIGNsZWFyQ29kZSk7CiAgICAgICAgIH0KIAog
ICAgIHB1YmxpYzoKICAgICAgICAgdHlwZWRlZiBKU0NlbGwgQmFzZTsKIAotICAgICAgICBzdGF0
aWMgRXhlY3V0YWJsZUJhc2UqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBpbnQgbnVtUGFyYW1ldGVycykKLSAgICAgICAgewotICAgICAgICAg
ICAgRXhlY3V0YWJsZUJhc2UqIGV4ZWN1dGFibGUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxFeGVjdXRh
YmxlQmFzZT4oZ2xvYmFsRGF0YS5oZWFwKSkgRXhlY3V0YWJsZUJhc2UoZ2xvYmFsRGF0YSwgc3Ry
dWN0dXJlLCBudW1QYXJhbWV0ZXJzKTsKLSAgICAgICAgICAgIGV4ZWN1dGFibGUtPmZpbmlzaENy
ZWF0aW9uKGdsb2JhbERhdGEpOwotICAgICAgICAgICAgcmV0dXJuIGV4ZWN1dGFibGU7Ci0gICAg
ICAgIH0KLQogICAgICAgICBib29sIGlzSG9zdEZ1bmN0aW9uKCkgY29uc3QKICAgICAgICAgewog
ICAgICAgICAgICAgQVNTRVJUKChtX251bVBhcmFtZXRlcnNGb3JDYWxsID09IE5VTV9QQVJBTUVU
RVJTX0lTX0hPU1QpID09IChtX251bVBhcmFtZXRlcnNGb3JDb25zdHJ1Y3QgPT0gTlVNX1BBUkFN
RVRFUlNfSVNfSE9TVCkpOwpAQCAtOTUsOCArODcsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCi0gICAgICAgIHZp
cnR1YWwgdm9pZCBjbGVhckNvZGVWaXJ0dWFsKCk7Ci0KICAgICBwcm90ZWN0ZWQ6CiAgICAgICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IDA7CiAgICAgICAgIGludCBt
X251bVBhcmFtZXRlcnNGb3JDYWxsOwpAQCAtMTgyLDkgKzE3Miw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgbV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0
eUNoZWNrOwogICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgbV9qaXRDb2RlRm9yQ29uc3Ry
dWN0V2l0aEFyaXR5Q2hlY2s7CiAjZW5kaWYKLSAgICAgICAgCi0gICAgcHJpdmF0ZToKLSAgICAg
ICAgc3RhdGljIHZvaWQgY2xlYXJDb2RlKEpTQ2VsbCopOworICAgICAgICB2b2lkIGNsZWFyQ29k
ZSgpOwogICAgIH07CiAKICAgICBjbGFzcyBOYXRpdmVFeGVjdXRhYmxlIDogcHVibGljIEV4ZWN1
dGFibGVCYXNlIHsKQEAgLTIwMyw2ICsxOTEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
ICAgICAgICBleGVjdXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8TmF0aXZlRXhlY3V0YWJsZT4o
Z2xvYmFsRGF0YS5oZWFwKSkgTmF0aXZlRXhlY3V0YWJsZShnbG9iYWxEYXRhLCBmdW5jdGlvbiwg
Y29uc3RydWN0b3IpOwogICAgICAgICAgICAgICAgIGV4ZWN1dGFibGUtPmZpbmlzaENyZWF0aW9u
KGdsb2JhbERhdGEsIEpJVENvZGU6Okhvc3RGdW5jdGlvbihjYWxsVGh1bmspLCBKSVRDb2RlOjpI
b3N0RnVuY3Rpb24oY29uc3RydWN0VGh1bmspLCBpbnRyaW5zaWMpOwogICAgICAgICAgICAgfQor
ICAgICAgICAgICAgZ2xvYmFsRGF0YS5oZWFwLmFkZEZpbmFsaXplcihleGVjdXRhYmxlLCAmZmlu
YWxpemUpOwogICAgICAgICAgICAgcmV0dXJuIGV4ZWN1dGFibGU7CiAgICAgICAgIH0KICNlbHNl
CkBAIC0yMTAsNiArMTk5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHsKICAgICAgICAg
ICAgIE5hdGl2ZUV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxOYXRp
dmVFeGVjdXRhYmxlPihnbG9iYWxEYXRhLmhlYXApKSBOYXRpdmVFeGVjdXRhYmxlKGdsb2JhbERh
dGEsIGZ1bmN0aW9uLCBjb25zdHJ1Y3Rvcik7CiAgICAgICAgICAgICBleGVjdXRhYmxlLT5maW5p
c2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKKyAgICAgICAgICAgIGdsb2JhbERhdGEuaGVhcC5hZGRG
aW5hbGl6ZXIoZXhlY3V0YWJsZSwgJmZpbmFsaXplKTsKICAgICAgICAgICAgIHJldHVybiBleGVj
dXRhYmxlOwogICAgICAgICB9CiAjZW5kaWYKQEAgLTI0Myw2ICsyMzMsOCBAQCBuYW1lc3BhY2Ug
SlNDIHsKICNpZiBFTkFCTEUoREZHX0pJVCkKICAgICAgICAgdmlydHVhbCBERkc6OkludHJpbnNp
YyBpbnRyaW5zaWMoKSBjb25zdDsKICNlbmRpZgorCisgICAgICAgIHN0YXRpYyB2b2lkIGZpbmFs
aXplKEpTQ2VsbCopOwogIAogICAgIHByaXZhdGU6CiAgICAgICAgIE5hdGl2ZUV4ZWN1dGFibGUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgTmF0aXZl
RnVuY3Rpb24gY29uc3RydWN0b3IpCkBAIC0zNDgsNiArMzQwLDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIHsKICAgICAgICAgICAgIEV2YWxFeGVjdXRhYmxlKiBleGVjdXRhYmxlID0gbmV3
IChhbGxvY2F0ZUNlbGw8RXZhbEV4ZWN1dGFibGU+KCpleGVjLT5oZWFwKCkpKSBFdmFsRXhlY3V0
YWJsZShleGVjLCBzb3VyY2UsIGlzSW5TdHJpY3RDb250ZXh0KTsKICAgICAgICAgICAgIGV4ZWN1
dGFibGUtPmZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSk7CisgICAgICAgICAgICBl
eGVjLT5nbG9iYWxEYXRhKCkuaGVhcC5hZGRGaW5hbGl6ZXIoZXhlY3V0YWJsZSwgJmZpbmFsaXpl
KTsKICAgICAgICAgICAgIHJldHVybiBleGVjdXRhYmxlOwogICAgICAgICB9CiAKQEAgLTM2NSw3
ICszNTgsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5m
byBzX2luZm87CiAKICAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBjbGVhckNv
ZGVWaXJ0dWFsKCk7CisgICAgICAgIHZvaWQgY2xlYXJDb2RlKCk7CisgICAgICAgIHN0YXRpYyB2
b2lkIGZpbmFsaXplKEpTQ2VsbCopOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IFNj
cmlwdEV4ZWN1dGFibGU6OlN0cnVjdHVyZUZsYWdzOwpAQCAtMzg2LDYgKzM4MCw3IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICB7CiAgICAgICAgICAgICBQcm9ncmFtRXhlY3V0YWJsZSogZXhl
Y3V0YWJsZSA9IG5ldyAoYWxsb2NhdGVDZWxsPFByb2dyYW1FeGVjdXRhYmxlPigqZXhlYy0+aGVh
cCgpKSkgUHJvZ3JhbUV4ZWN1dGFibGUoZXhlYywgc291cmNlKTsKICAgICAgICAgICAgIGV4ZWN1
dGFibGUtPmZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSk7CisgICAgICAgICAgICBl
eGVjLT5nbG9iYWxEYXRhKCkuaGVhcC5hZGRGaW5hbGl6ZXIoZXhlY3V0YWJsZSwgJmZpbmFsaXpl
KTsKICAgICAgICAgICAgIHJldHVybiBleGVjdXRhYmxlOwogICAgICAgICB9CiAKQEAgLTQzMCw3
ICs0MjUsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5m
byBzX2luZm87CiAgICAgICAgIAogICAgIHByb3RlY3RlZDoKLSAgICAgICAgdmlydHVhbCB2b2lk
IGNsZWFyQ29kZVZpcnR1YWwoKTsKKyAgICAgICAgdm9pZCBjbGVhckNvZGUoKTsKKyAgICAgICAg
c3RhdGljIHZvaWQgZmluYWxpemUoSlNDZWxsKik7CiAKICAgICBwcml2YXRlOgogICAgICAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNWaXNpdENoaWxk
cmVuIHwgU2NyaXB0RXhlY3V0YWJsZTo6U3RydWN0dXJlRmxhZ3M7CkBAIC00NTIsNiArNDQ4LDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHsKICAgICAgICAgICAgIEZ1bmN0aW9uRXhlY3V0
YWJsZSogZXhlY3V0YWJsZSA9IG5ldyAoYWxsb2NhdGVDZWxsPEZ1bmN0aW9uRXhlY3V0YWJsZT4o
KmV4ZWMtPmhlYXAoKSkpIEZ1bmN0aW9uRXhlY3V0YWJsZShleGVjLCBuYW1lLCBzb3VyY2UsIGZv
cmNlVXNlc0FyZ3VtZW50cywgcGFyYW1ldGVycywgaXNJblN0cmljdENvbnRleHQpOwogICAgICAg
ICAgICAgZXhlY3V0YWJsZS0+ZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBuYW1l
LCBmaXJzdExpbmUsIGxhc3RMaW5lKTsKKyAgICAgICAgICAgIGV4ZWMtPmdsb2JhbERhdGEoKS5o
ZWFwLmFkZEZpbmFsaXplcihleGVjdXRhYmxlLCAmZmluYWxpemUpOwogICAgICAgICAgICAgcmV0
dXJuIGV4ZWN1dGFibGU7CiAgICAgICAgIH0KIApAQCAtNDU5LDYgKzQ1Niw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICB7CiAgICAgICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1
dGFibGUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxGdW5jdGlvbkV4ZWN1dGFibGU+KGdsb2JhbERhdGEu
aGVhcCkpIEZ1bmN0aW9uRXhlY3V0YWJsZShnbG9iYWxEYXRhLCBuYW1lLCBzb3VyY2UsIGZvcmNl
VXNlc0FyZ3VtZW50cywgcGFyYW1ldGVycywgaXNJblN0cmljdENvbnRleHQpOwogICAgICAgICAg
ICAgZXhlY3V0YWJsZS0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgbmFtZSwgZmlyc3RMaW5l
LCBsYXN0TGluZSk7CisgICAgICAgICAgICBnbG9iYWxEYXRhLmhlYXAuYWRkRmluYWxpemVyKGV4
ZWN1dGFibGUsICZmaW5hbGl6ZSk7CiAgICAgICAgICAgICByZXR1cm4gZXhlY3V0YWJsZTsKICAg
ICAgICAgfQogCkBAIC02MTMsNyArNjExLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0
YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogICAgICAgICAKICAgICBwcm90ZWN0ZWQ6Ci0g
ICAgICAgIHZpcnR1YWwgdm9pZCBjbGVhckNvZGVWaXJ0dWFsKCk7CisgICAgICAgIHZvaWQgY2xl
YXJDb2RlKCk7CisgICAgICAgIHN0YXRpYyB2b2lkIGZpbmFsaXplKEpTQ2VsbCopOwogCiAgICAg
ICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJ
ZGVudGlmaWVyJiBuYW1lLCBpbnQgZmlyc3RMaW5lLCBpbnQgbGFzdExpbmUpCiAgICAgICAgIHsK
</data>
<flag name="review"
          id="114132"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>