<?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>4435</bug_id>
          
          <creation_ts>2005-08-14 21:11:27 -0700</creation_ts>
          <short_desc>speed up JavaScript by tweaking the Identifier class</short_desc>
          <delta_ts>2005-08-19 13:22:24 -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>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>16679</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-08-14 21:11:27 -0700</bug_when>
    <thetext>I was doing some performance work on JavaScript and found some speedups from tweaking UString and 
Identifier a little -- a bit more inlining and a bit less reference count bumping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>16680</commentid>
    <comment_count>1</comment_count>
      <attachid>3390</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-08-14 21:12:44 -0700</bug_when>
    <thetext>Created attachment 3390
patch that does a bit more inlining and changes reference counting a bit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>16682</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-08-14 21:15:54 -0700</bug_when>
    <thetext>*** Bug 4418 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>16683</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-08-14 21:16:47 -0700</bug_when>
    <thetext>I&apos;m thinking that the part of this patch that tweaks reference counting isn&apos;t really so helpful, since it only 
saves a ref() in the case where the identifier is a new one -- I don&apos;t know how common that code path is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>16918</commentid>
    <comment_count>4</comment_count>
      <attachid>3390</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-08-17 23:05:05 -0700</bug_when>
    <thetext>Comment on attachment 3390
patch that does a bit more inlining and changes reference counting a bit

I&apos;m not sure I understand this patch - it adds a bunch of calls to ref, but I
guess the few it removes were called more often? I assume you performance
tested this so r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>17000</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-08-19 09:57:59 -0700</bug_when>
    <thetext>The ref change removes a ref from a common code path, and adds it back in all cases but one. I think the 
performance improvement I measured was from the other change. I think I&apos;ll land the other part without 
the ref change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>17004</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-08-19 13:22:24 -0700</bug_when>
    <thetext>I landed the null and UString() improvements and didn&apos;t bother with the questionable ref/deref 
improvement.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>3390</attachid>
            <date>2005-08-14 21:12:44 -0700</date>
            <delta_ts>2005-08-17 23:05:05 -0700</delta_ts>
            <desc>patch that does a bit more inlining and changes reference counting a bit</desc>
            <filename>IdentifierInlinePatch.txt</filename>
            <type>text/plain</type>
            <size>9335</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IGtqcy9pZGVudGlmaWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3Qv
SmF2YVNjcmlwdENvcmUva2pzL2lkZW50aWZpZXIuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAx
LjE1CmRpZmYgLXAgLXUgLXIxLjE1IGtqcy9pZGVudGlmaWVyLmNwcAotLS0ga2pzL2lkZW50aWZp
ZXIuY3BwCTE0IEp1bCAyMDA1IDE4OjI3OjAyIC0wMDAwCTEuMTUKKysrIGtqcy9pZGVudGlmaWVy
LmNwcAkxNCBBdWcgMjAwNSAwNjoyNDoyNiAtMDAwMApAQCAtMTAyLDExICsxMDIsMTcgQEAgYm9v
bCBJZGVudGlmaWVyOjplcXVhbChVU3RyaW5nOjpSZXAgKnIsIAogCiBVU3RyaW5nOjpSZXAgKklk
ZW50aWZpZXI6OmFkZChjb25zdCBjaGFyICpjKQogewotICAgIGlmICghYykKLSAgICAgICAgcmV0
dXJuICZVU3RyaW5nOjpSZXA6Om51bGw7CisgICAgaWYgKCFjKSB7CisgICAgICAgIFVTdHJpbmc6
OlJlcCAqbnVsbCA9ICZVU3RyaW5nOjpSZXA6Om51bGw7CisgICAgICAgIG51bGwtPnJlZigpOwor
ICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CiAgICAgaW50IGxlbmd0aCA9IHN0cmxlbihjKTsK
LSAgICBpZiAobGVuZ3RoID09IDApCi0gICAgICAgIHJldHVybiAmVVN0cmluZzo6UmVwOjplbXB0
eTsKKyAgICBpZiAobGVuZ3RoID09IDApIHsKKyAgICAgICAgVVN0cmluZzo6UmVwICplbXB0eSA9
ICZVU3RyaW5nOjpSZXA6OmVtcHR5OworICAgICAgICBlbXB0eS0+cmVmKCk7CisgICAgICAgIHJl
dHVybiBlbXB0eTsKKyAgICB9CiAgICAgCiAgICAgaWYgKCFfdGFibGUpCiAgICAgICAgIGV4cGFu
ZCgpOwpAQCAtMTE5LDggKzEyNSwxMCBAQCBVU3RyaW5nOjpSZXAgKklkZW50aWZpZXI6OmFkZChj
b25zdCBjaGFyCiAgICAgbnVtQ29sbGlzaW9ucyArPSBfdGFibGVbaV0gJiYgIWVxdWFsKF90YWJs
ZVtpXSwgYyk7CiAjZW5kaWYKICAgICB3aGlsZSAoVVN0cmluZzo6UmVwICprZXkgPSBfdGFibGVb
aV0pIHsKLSAgICAgICAgaWYgKGVxdWFsKGtleSwgYykpCisgICAgICAgIGlmIChlcXVhbChrZXks
IGMpKSB7CisgICAgICAgICAgICBrZXktPnJlZigpOwogICAgICAgICAgICAgcmV0dXJuIGtleTsK
KyAgICAgICAgfQogICAgICAgICBpID0gKGkgKyAxKSAmIF90YWJsZVNpemVNYXNrOwogICAgIH0K
ICAgICAKQEAgLTEzMCw3ICsxMzgsNiBAQCBVU3RyaW5nOjpSZXAgKklkZW50aWZpZXI6OmFkZChj
b25zdCBjaGFyCiAgICAgCiAgICAgVVN0cmluZzo6UmVwICpyID0gVVN0cmluZzo6UmVwOjpjcmVh
dGUoZCwgbGVuZ3RoKTsKICAgICByLT5pc0lkZW50aWZpZXIgPSAxOwotICAgIHItPnJjID0gMDsK
ICAgICByLT5faGFzaCA9IGhhc2g7CiAgICAgCiAgICAgX3RhYmxlW2ldID0gcjsKQEAgLTE0NCw4
ICsxNTEsMTEgQEAgVVN0cmluZzo6UmVwICpJZGVudGlmaWVyOjphZGQoY29uc3QgY2hhcgogCiBV
U3RyaW5nOjpSZXAgKklkZW50aWZpZXI6OmFkZChjb25zdCBVQ2hhciAqcywgaW50IGxlbmd0aCkK
IHsKLSAgICBpZiAobGVuZ3RoID09IDApCi0gICAgICAgIHJldHVybiAmVVN0cmluZzo6UmVwOjpl
bXB0eTsKKyAgICBpZiAobGVuZ3RoID09IDApIHsKKyAgICAgICAgVVN0cmluZzo6UmVwICplbXB0
eSA9ICZVU3RyaW5nOjpSZXA6OmVtcHR5OworICAgICAgICBlbXB0eS0+cmVmKCk7CisgICAgICAg
IHJldHVybiBlbXB0eTsKKyAgICB9CiAgICAgCiAgICAgaWYgKCFfdGFibGUpCiAgICAgICAgIGV4
cGFuZCgpOwpAQCAtMTU4LDggKzE2OCwxMCBAQCBVU3RyaW5nOjpSZXAgKklkZW50aWZpZXI6OmFk
ZChjb25zdCBVQ2hhCiAgICAgbnVtQ29sbGlzaW9ucyArPSBfdGFibGVbaV0gJiYgIWVxdWFsKF90
YWJsZVtpXSwgcywgbGVuZ3RoKTsKICNlbmRpZgogICAgIHdoaWxlIChVU3RyaW5nOjpSZXAgKmtl
eSA9IF90YWJsZVtpXSkgewotICAgICAgICBpZiAoZXF1YWwoa2V5LCBzLCBsZW5ndGgpKQorICAg
ICAgICBpZiAoZXF1YWwoa2V5LCBzLCBsZW5ndGgpKSB7CisgICAgICAgICAgICBrZXktPnJlZigp
OwogICAgICAgICAgICAgcmV0dXJuIGtleTsKKyAgICAgICAgfQogICAgICAgICBpID0gKGkgKyAx
KSAmIF90YWJsZVNpemVNYXNrOwogICAgIH0KICAgICAKQEAgLTE2OSw3ICsxODEsNiBAQCBVU3Ry
aW5nOjpSZXAgKklkZW50aWZpZXI6OmFkZChjb25zdCBVQ2hhCiAgICAgCiAgICAgVVN0cmluZzo6
UmVwICpyID0gVVN0cmluZzo6UmVwOjpjcmVhdGUoZCwgbGVuZ3RoKTsKICAgICByLT5pc0lkZW50
aWZpZXIgPSAxOwotICAgIHItPnJjID0gMDsKICAgICByLT5faGFzaCA9IGhhc2g7CiAgICAgCiAg
ICAgX3RhYmxlW2ldID0gcjsKQEAgLTE4MywxMCArMTk0LDE1IEBAIFVTdHJpbmc6OlJlcCAqSWRl
bnRpZmllcjo6YWRkKGNvbnN0IFVDaGEKIAogVVN0cmluZzo6UmVwICpJZGVudGlmaWVyOjphZGQo
VVN0cmluZzo6UmVwICpyKQogewotICAgIGlmIChyLT5pc0lkZW50aWZpZXIpCisgICAgaWYgKHIt
PmlzSWRlbnRpZmllcikgeworICAgICAgICByLT5yZWYoKTsKICAgICAgICAgcmV0dXJuIHI7Ci0g
ICAgaWYgKHItPmxlbiA9PSAwKQotICAgICAgICByZXR1cm4gJlVTdHJpbmc6OlJlcDo6ZW1wdHk7
CisgICAgfQorICAgIGlmIChyLT5sZW4gPT0gMCkgeworICAgICAgICBVU3RyaW5nOjpSZXAgKmVt
cHR5ID0gJlVTdHJpbmc6OlJlcDo6ZW1wdHk7CisgICAgICAgIGVtcHR5LT5yZWYoKTsKKyAgICAg
ICAgcmV0dXJuIGVtcHR5OworICAgIH0KICAgICAKICAgICBpZiAoIV90YWJsZSkKICAgICAgICAg
ZXhwYW5kKCk7CkBAIC0xOTksOCArMjE1LDEwIEBAIFVTdHJpbmc6OlJlcCAqSWRlbnRpZmllcjo6
YWRkKFVTdHJpbmc6OlIKICAgICBudW1Db2xsaXNpb25zICs9IF90YWJsZVtpXSAmJiAhZXF1YWwo
X3RhYmxlW2ldLCByKTsKICNlbmRpZgogICAgIHdoaWxlIChVU3RyaW5nOjpSZXAgKmtleSA9IF90
YWJsZVtpXSkgewotICAgICAgICBpZiAoZXF1YWwoa2V5LCByKSkKKyAgICAgICAgaWYgKGVxdWFs
KGtleSwgcikpIHsKKyAgICAgICAgICAgIGtleS0+cmVmKCk7CiAgICAgICAgICAgICByZXR1cm4g
a2V5OworICAgICAgICB9CiAgICAgICAgIGkgPSAoaSArIDEpICYgX3RhYmxlU2l6ZU1hc2s7CiAg
ICAgfQogICAgIApAQCAtMjEyLDYgKzIzMCw3IEBAIFVTdHJpbmc6OlJlcCAqSWRlbnRpZmllcjo6
YWRkKFVTdHJpbmc6OlIKICAgICBpZiAoX2tleUNvdW50ICogMiA+PSBfdGFibGVTaXplKQogICAg
ICAgICBleHBhbmQoKTsKICAgICAKKyAgICByLT5yZWYoKTsKICAgICByZXR1cm4gcjsKIH0KIApA
QCAtMjk0LDEyICszMTMsNiBAQCB2b2lkIElkZW50aWZpZXI6OnJlaGFzaChpbnQgbmV3VGFibGVT
aXplCiAgICAgZnJlZShvbGRUYWJsZSk7CiB9CiAKLWNvbnN0IElkZW50aWZpZXIgJklkZW50aWZp
ZXI6Om51bGwoKQotewotICAgIHN0YXRpYyBJZGVudGlmaWVyIG51bGw7Ci0gICAgcmV0dXJuIG51
bGw7Ci19Ci0KIC8vIEdsb2JhbCBjb25zdGFudHMgZm9yIHByb3BlcnR5IG5hbWUgc3RyaW5ncy4K
IAogI2lmICFBVk9JRF9TVEFUSUNfQ09OU1RSVUNUT1JTCkBAIC0zMDksMTIgKzMyMiwxNiBAQCBj
b25zdCBJZGVudGlmaWVyICZJZGVudGlmaWVyOjpudWxsKCkKICAgICAvLyBEZWZpbmUgYW4gSWRl
bnRpZmllci1zaXplZCBhcnJheSBvZiBwb2ludGVycyB0byBhdm9pZCBzdGF0aWMgaW5pdGlhbGl6
YXRpb24uCiAgICAgLy8gVXNlIGFuIGFycmF5IG9mIHBvaW50ZXJzIGluc3RlYWQgb2YgYW4gYXJy
YXkgb2YgY2hhciBpbiBjYXNlIHRoZXJlIGlzIHNvbWUgYWxpZ25tZW50IGlzc3VlLgogICAgICNk
ZWZpbmUgREVGSU5FX0dMT0JBTChuYW1lLCBzdHJpbmcpIFwKLSAgICAgICAgdm9pZCAqIG5hbWUg
IyMgUHJvcGVydHlOYW1lWyhzaXplb2YoSWRlbnRpZmllcikgKyBzaXplb2Yodm9pZCAqKSAtIDEp
IC8gc2l6ZW9mKHZvaWQgKildOworICAgICAgICB2b2lkICogbmFtZVsoc2l6ZW9mKElkZW50aWZp
ZXIpICsgc2l6ZW9mKHZvaWQgKikgLSAxKSAvIHNpemVvZih2b2lkICopXTsKICNlbmRpZgogCi0j
ZGVmaW5lIENBTExfREVGSU5FX0dMT0JBTChuYW1lKSBERUZJTkVfR0xPQkFMKG5hbWUsICNuYW1l
KQotS0pTX0lERU5USUZJRVJfRUFDSF9HTE9CQUwoQ0FMTF9ERUZJTkVfR0xPQkFMKQotREVGSU5F
X0dMT0JBTChzcGVjaWFsUHJvdG90eXBlLCAiX19wcm90b19fIikKK2NvbnN0IGNoYXIgKiBjb25z
dCBudWxsQ1N0cmluZyA9IDA7CisKK0RFRklORV9HTE9CQUwobnVsbElkZW50aWZpZXIsIG51bGxD
U3RyaW5nKQorREVGSU5FX0dMT0JBTChzcGVjaWFsUHJvdG90eXBlUHJvcGVydHlOYW1lLCAiX19w
cm90b19fIikKKworI2RlZmluZSBERUZJTkVfUFJPUEVSVFlfTkFNRV9HTE9CQUwobmFtZSkgREVG
SU5FX0dMT0JBTChuYW1lICMjIFByb3BlcnR5TmFtZSwgI25hbWUpCitLSlNfSURFTlRJRklFUl9F
QUNIX1BST1BFUlRZX05BTUVfR0xPQkFMKERFRklORV9QUk9QRVJUWV9OQU1FX0dMT0JBTCkKIAog
dm9pZCBJZGVudGlmaWVyOjppbml0KCkKIHsKQEAgLTMyMiwxMCArMzM5LDEzIEBAIHZvaWQgSWRl
bnRpZmllcjo6aW5pdCgpCiAgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQ7CiAgICAgaWYgKCFp
bml0aWFsaXplZCkgewogICAgICAgICAvLyBVc2UgcGxhY2VtZW50IG5ldyB0byBpbml0aWFsaXpl
IHRoZSBnbG9iYWxzLgotICAgICAgICAjZGVmaW5lIFBMQUNFTUVOVF9ORVdfR0xPQkFMKG5hbWUs
IHN0cmluZykgbmV3ICgmbmFtZSAjIyBQcm9wZXJ0eU5hbWUpIElkZW50aWZpZXIoc3RyaW5nKTsK
LSAgICAgICAgI2RlZmluZSBDQUxMX1BMQUNFTUVOVF9ORVdfR0xPQkFMKG5hbWUpIFBMQUNFTUVO
VF9ORVdfR0xPQkFMKG5hbWUsICNuYW1lKQotICAgICAgICBLSlNfSURFTlRJRklFUl9FQUNIX0dM
T0JBTChDQUxMX1BMQUNFTUVOVF9ORVdfR0xPQkFMKQotICAgICAgICBQTEFDRU1FTlRfTkVXX0dM
T0JBTChzcGVjaWFsUHJvdG90eXBlLCAiX19wcm90b19fIikKKworICAgICAgICBuZXcgKCZudWxs
SWRlbnRpZmllcikgSWRlbnRpZmllcihudWxsQ1N0cmluZyk7CisgICAgICAgIG5ldyAoJnNwZWNp
YWxQcm90b3R5cGVQcm9wZXJ0eU5hbWUpIElkZW50aWZpZXIoIl9fcHJvdG9fXyIpOworCisgICAg
ICAgICNkZWZpbmUgUExBQ0VNRU5UX05FV19QUk9QRVJUWV9OQU1FX0dMT0JBTChuYW1lKSBuZXco
Jm5hbWUgIyMgUHJvcGVydHlOYW1lKSBJZGVudGlmaWVyKCNuYW1lKTsKKyAgICAgICAgS0pTX0lE
RU5USUZJRVJfRUFDSF9QUk9QRVJUWV9OQU1FX0dMT0JBTChQTEFDRU1FTlRfTkVXX1BST1BFUlRZ
X05BTUVfR0xPQkFMKQorCiAgICAgICAgIGluaXRpYWxpemVkID0gdHJ1ZTsKICAgICB9CiAjZW5k
aWYKSW5kZXg6IGtqcy9pZGVudGlmaWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290
L0phdmFTY3JpcHRDb3JlL2tqcy9pZGVudGlmaWVyLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
MTUKZGlmZiAtcCAtdSAtcjEuMTUga2pzL2lkZW50aWZpZXIuaAotLS0ga2pzL2lkZW50aWZpZXIu
aAkxNCBKdWwgMjAwNSAxODoyNzowMiAtMDAwMAkxLjE1CisrKyBranMvaWRlbnRpZmllci5oCTE0
IEF1ZyAyMDA1IDA2OjI0OjI2IC0wMDAwCkBAIC05Myw2ICs5MywxMyBAQCBuYW1lc3BhY2UgS0pT
IHsKICAgICAgICAgc3RhdGljIGludCBfa2V5Q291bnQ7CiAgICAgfTsKICAgICAKKyNpZiAhS0pT
X0lERU5USUZJRVJfSElERV9HTE9CQUxTCisgICAgZXh0ZXJuIGNvbnN0IElkZW50aWZpZXIgbnVs
bElkZW50aWZpZXI7CisKKyAgICBpbmxpbmUgY29uc3QgSWRlbnRpZmllciAmSWRlbnRpZmllcjo6
bnVsbCgpCisgICAgICAgIHsgcmV0dXJuIG51bGxJZGVudGlmaWVyOyB9CisjZW5kaWYKKwogICAg
IGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgSWRlbnRpZmllciAmYSwgY29uc3QgSWRlbnRp
ZmllciAmYikKICAgICAgICAgeyByZXR1cm4gSWRlbnRpZmllcjo6ZXF1YWwoYSwgYik7IH0KIApA
QCAtMTA0LDcgKzExMSw3IEBAIG5hbWVzcGFjZSBLSlMgewogCiAgICAgLy8gTGlzdCBvZiBwcm9w
ZXJ0eSBuYW1lcywgcGFzc2VkIHRvIGEgbWFjcm8gc28gd2UgY2FuIGRvIHNldCB0aGVtIHVwIHZh
cmlvdXMKICAgICAvLyB3YXlzIHdpdGhvdXQgcmVwZWF0aW5nIHRoZSBsaXN0LgotICAgICNkZWZp
bmUgS0pTX0lERU5USUZJRVJfRUFDSF9HTE9CQUwobWFjcm8pIFwKKyAgICAjZGVmaW5lIEtKU19J
REVOVElGSUVSX0VBQ0hfUFJPUEVSVFlfTkFNRV9HTE9CQUwobWFjcm8pIFwKICAgICAgICAgbWFj
cm8oYXJndW1lbnRzKSBcCiAgICAgICAgIG1hY3JvKGNhbGxlZSkgXAogICAgICAgICBtYWNybyhj
b25zdHJ1Y3RvcikgXApAQCAtMTIxLDEwICsxMjgsMTEgQEAgbmFtZXNwYWNlIEtKUyB7CiAKICAg
ICAvLyBEZWZpbmUgZXh0ZXJuYWwgZ2xvYmFsIHZhcmlhYmxlcyBmb3IgYWxsIHByb3BlcnR5IG5h
bWVzIGFib3ZlIChhbmQgb25lIG1vcmUpLgogI2lmICFLSlNfSURFTlRJRklFUl9ISURFX0dMT0JB
TFMKLSAgICAjZGVmaW5lIEtKU19JREVOVElGSUVSX0RFQ0xBUkVfR0xPQkFMKG5hbWUpIGV4dGVy
biBjb25zdCBJZGVudGlmaWVyIG5hbWUgIyMgUHJvcGVydHlOYW1lOwotICAgIEtKU19JREVOVElG
SUVSX0VBQ0hfR0xPQkFMKEtKU19JREVOVElGSUVSX0RFQ0xBUkVfR0xPQkFMKQotICAgIEtKU19J
REVOVElGSUVSX0RFQ0xBUkVfR0xPQkFMKHNwZWNpYWxQcm90b3R5cGUpCi0gICAgI3VuZGVmIEtK
U19JREVOVElGSUVSX0RFQ0xBUkVfR0xPQkFMCisgICAgZXh0ZXJuIGNvbnN0IElkZW50aWZpZXIg
c3BlY2lhbFByb3RvdHlwZVByb3BlcnR5TmFtZTsKKworICAgICNkZWZpbmUgS0pTX0lERU5USUZJ
RVJfREVDTEFSRV9QUk9QRVJUWV9OQU1FX0dMT0JBTChuYW1lKSBleHRlcm4gY29uc3QgSWRlbnRp
ZmllciBuYW1lICMjIFByb3BlcnR5TmFtZTsKKyAgICBLSlNfSURFTlRJRklFUl9FQUNIX1BST1BF
UlRZX05BTUVfR0xPQkFMKEtKU19JREVOVElGSUVSX0RFQ0xBUkVfUFJPUEVSVFlfTkFNRV9HTE9C
QUwpCisgICAgI3VuZGVmIEtKU19JREVOVElGSUVSX0RFQ0xBUkVfUFJPUEVSVFlfTkFNRV9HTE9C
QUwKICNlbmRpZgogCiB9CkluZGV4OiBranMvdXN0cmluZy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2tqcy91c3RyaW5nLmNwcCx2CnJldHJpZXZpbmcg
cmV2aXNpb24gMS41OApkaWZmIC1wIC11IC1yMS41OCBranMvdXN0cmluZy5jcHAKLS0tIGtqcy91
c3RyaW5nLmNwcAkxIEF1ZyAyMDA1IDA1OjAyOjEzIC0wMDAwCTEuNTgKKysrIGtqcy91c3RyaW5n
LmNwcAkxNCBBdWcgMjAwNSAwNjoyNDoyOSAtMDAwMApAQCAtMzg5LDExICszODksNiBAQCB2b2lk
IFVTdHJpbmc6OmV4cGFuZFByZUNhcGFjaXR5KGludCByZXF1CiB9CiAKIAotVVN0cmluZzo6VVN0
cmluZygpCi17Ci0gIGF0dGFjaCgmUmVwOjpudWxsKTsKLX0KLQogVVN0cmluZzo6VVN0cmluZyhj
aGFyIGMpCiB7CiAgICAgVUNoYXIgKmQgPSBzdGF0aWNfY2FzdDxVQ2hhciAqPihranNfZmFzdF9t
YWxsb2Moc2l6ZW9mKFVDaGFyKSkpOwpAQCAtNjM4LDExICs2MzMsNyBAQCBVU3RyaW5nIFVTdHJp
bmc6OnNwbGljZVN1YnN0cmluZ3NXaXRoU2VwCiAgICAgfQogICB9CiAKLSAgVVN0cmluZzo6UmVw
ICpyZXAgPSBVU3RyaW5nOjpSZXA6OmNyZWF0ZShidWZmZXIsIHRvdGFsTGVuZ3RoKTsKLSAgVVN0
cmluZyByZXN1bHQgPSBVU3RyaW5nKHJlcCk7Ci0gIHJlcC0+ZGVyZWYoKTsKLQotICByZXR1cm4g
cmVzdWx0OworICByZXR1cm4gUmVwOjpjcmVhdGUoYnVmZmVyLCB0b3RhbExlbmd0aCk7CiB9CiAK
IApAQCAtMTEyNiw3ICsxMTE3LDcgQEAgVVN0cmluZyBVU3RyaW5nOjpzdWJzdHIoaW50IHBvcywg
aW50IGxlbgogICBpZiAocG9zID09IDAgJiYgbGVuID09IHMpCiAgICAgcmV0dXJuICp0aGlzOwog
Ci0gIFVTdHJpbmc6OlJlcCAqbmV3UmVwID0gUmVwOjpjcmVhdGUocmVwLCBwb3MsIGxlbik7Cisg
IFJlcCAqbmV3UmVwID0gUmVwOjpjcmVhdGUocmVwLCBwb3MsIGxlbik7CiAgIFVTdHJpbmcgcmVz
dWx0KG5ld1JlcCk7CiAgIG5ld1JlcC0+ZGVyZWYoKTsKIApJbmRleDoga2pzL3VzdHJpbmcuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUva2pzL3VzdHJpbmcu
aCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4zNwpkaWZmIC1wIC11IC1yMS4zNyBranMvdXN0cmlu
Zy5oCi0tLSBranMvdXN0cmluZy5oCTE0IEp1bCAyMDA1IDE4OjI3OjAzIC0wMDAwCTEuMzcKKysr
IGtqcy91c3RyaW5nLmgJMTQgQXVnIDIwMDUgMDY6MjQ6MjkgLTAwMDAKQEAgLTIwNCw5ICsyMDQs
NiBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICAgKiBAaW50ZXJuYWwKICAgICAgKi8KICAgICBzdHJ1
Y3QgUmVwIHsKLSAgICAgIGZyaWVuZCBjbGFzcyBVU3RyaW5nOwotICAgICAgZnJpZW5kIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBVU3RyaW5nJiwgY29uc3QgVVN0cmluZyYpOwotICAgICAgCiAgICAg
ICBzdGF0aWMgUmVwICpjcmVhdGUoVUNoYXIgKmQsIGludCBsKTsKICAgICAgIHN0YXRpYyBSZXAg
KmNyZWF0ZUNvcHlpbmcoY29uc3QgVUNoYXIgKmQsIGludCBsKTsKICAgICAgIHN0YXRpYyBSZXAg
KmNyZWF0ZShSZXAgKmJhc2UsIGludCBvZmZzZXQsIGludCBsZW5ndGgpOwpAQCAtNDY5LDcgKzQ2
Niw3IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIHN0YXRpYyB2b2lkIGdsb2JhbENsZWFyKCk7CiAj
ZW5kaWYKICAgcHJpdmF0ZToKLSAgICBVU3RyaW5nKFJlcCAqcikgeyBhdHRhY2gocik7IH0KKyAg
ICBVU3RyaW5nKFJlcCAqcikgOiByZXAocikgeyB9CiAgICAgdm9pZCBhdHRhY2goUmVwICpyKSB7
IHJlcCA9IHI7IHItPnJlZigpOyB9CiAgICAgdm9pZCBkZXRhY2goKTsKICAgICB2b2lkIHJlbGVh
c2UoKSB7IHJlcC0+ZGVyZWYoKTsgfQpAQCAtNTE3LDYgKzUxNCwxMSBAQCBuYW1lc3BhY2UgS0pT
IHsKICAgLy8gUmV0dXJucyAtMSBpZiB0aGUgc2VxdWVuY2UgaXMgbm90IHZhbGlkIChpbmNsdWRp
bmcgcHJlc2VuY2Ugb2YgZXh0cmEgYnl0ZXMpLgogICBpbnQgZGVjb2RlVVRGOFNlcXVlbmNlKGNv
bnN0IGNoYXIgKik7CiAKK2lubGluZSBVU3RyaW5nOjpVU3RyaW5nKCkKK3sKKyAgICBhdHRhY2go
JlJlcDo6bnVsbCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRpZgo=
</data>
<flag name="review"
          id="372"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>