<?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>23084</bug_id>
          
          <creation_ts>2009-01-02 16:38:16 -0800</creation_ts>
          <short_desc>Avoid redundant AtomicString conversions</short_desc>
          <delta_ts>2009-01-06 06:35:59 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</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="David Smith">catfish.man</reporter>
          <assigned_to name="David Smith">catfish.man</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>104192</commentid>
    <comment_count>0</comment_count>
    <who name="David Smith">catfish.man</who>
    <bug_when>2009-01-02 16:38:16 -0800</bug_when>
    <thetext>Followup to #22699 for this review comment:

&gt; +    pair&lt;NodeListsNodeData::TagCacheMap::iterator, bool&gt; result = data-&gt;nodeLists()-&gt;m_tagNodeListCaches.add(QualifiedName(nullAtom, name, namespaceURI), 0);
&gt; +    if (result.second)
&gt; +        result.first-&gt;second = new DynamicNodeList::Caches;
&gt; +    
&gt; +    return TagNodeList::create(this, namespaceURI.isEmpty() ? nullAtom : AtomicString(namespaceURI), name, result.first-&gt;second);

It&apos;s inefficient to convert namespaceURI to an AtomicString twice here. It
should be made into an AtomicString only once and reused. The best way to do
this is to change the argument into an AtomicString in the first place in
Node.h. This should be done for isDefaultNamespace, lookupPrefix,
lookupNamespacePrefix, and getElementsByTagNameNS, since all those functions
just end up making an AtomicString a moment later. Maybe in a separate patch,
though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104405</commentid>
    <comment_count>1</comment_count>
      <attachid>26427</attachid>
    <who name="David Smith">catfish.man</who>
    <bug_when>2009-01-05 00:30:32 -0800</bug_when>
    <thetext>Created attachment 26427
Does what it says on the tin

Much to my surprise this actually made a noticeable difference; My getElementsByTagName microbenchmark sped up by 20% or so, although the variance was so high I&apos;m not sure how much that means.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104406</commentid>
    <comment_count>2</comment_count>
    <who name="David Smith">catfish.man</who>
    <bug_when>2009-01-05 00:41:01 -0800</bug_when>
    <thetext>Landed in r39596</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104533</commentid>
    <comment_count>3</comment_count>
    <who name="David Smith">catfish.man</who>
    <bug_when>2009-01-05 23:06:52 -0800</bug_when>
    <thetext>Found a few more to remove</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104534</commentid>
    <comment_count>4</comment_count>
      <attachid>26452</attachid>
    <who name="David Smith">catfish.man</who>
    <bug_when>2009-01-05 23:07:37 -0800</bug_when>
    <thetext>Created attachment 26452
Cuts the time spent in AtomicString::add() by slightly more than half.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104563</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-01-06 06:35:59 -0800</bug_when>
    <thetext>One other thought. Converting to AtomicString early helps another way. If the argument for the DOM function itself is an AtomicString then the JavaScript UString can be converted to an AtomicString without first making a String, and if that value happens to already be in the AtomicString map, then this means there&apos;s no String allocation needed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26427</attachid>
            <date>2009-01-05 00:30:32 -0800</date>
            <delta_ts>2009-01-05 00:36:51 -0800</delta_ts>
            <desc>Does what it says on the tin</desc>
            <filename>redundantatomicstrings.txt</filename>
            <type>text/plain</type>
            <size>4504</size>
            <attacher name="David Smith">catfish.man</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzOTU5NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMDktMDEtMDQgIERhdmlkIFNtaXRoICA8Y2F0ZmlzaC5tYW5AZ21h
aWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEF2b2lkIHJlZHVuZGFudCBBdG9taWNTdHJpbmcgY29udmVyc2lvbnMKKworICAgICAgICAqIGRv
bS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmdldEVsZW1lbnRzQnlUYWdOYW1l
KTogUGFzcyBzdGFyQXRvbSBpbnN0ZWFkIG9mICIqIgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6
Z2V0RWxlbWVudHNCeVRhZ05hbWVOUyk6IFRha2UgYW4gQXRvbWljU3RyaW5nIGZvciB0aGUgbmFt
ZXNwYWNlIFVSSQorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNEZWZhdWx0TmFtZXNwYWNlKTog
RGl0dG8KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6Omxvb2t1cFByZWZpeCk6IERpdHRvCisgICAg
ICAgIChXZWJDb3JlOjpOb2RlOjpsb29rdXBOYW1lc3BhY2VQcmVmaXgpOiBEaXR0bworICAgICAg
ICAqIGRvbS9Ob2RlLmg6IERpdHRvCisKIDIwMDktMDEtMDQgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50LgpJbmRleDogV2Vi
Q29yZS9kb20vTm9kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vTm9kZS5jcHAJKHJl
dmlzaW9uIDM5NTk1KQorKysgV2ViQ29yZS9kb20vTm9kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEzNzYsMTAgKzEzNzYsMTAgQEAgYm9vbCBOb2RlOjppblNhbWVDb250YWluaW5nQmxvY2tGbG93
RWxlbQogCiBQYXNzUmVmUHRyPE5vZGVMaXN0PiBOb2RlOjpnZXRFbGVtZW50c0J5VGFnTmFtZShj
b25zdCBTdHJpbmcmIG5hbWUpCiB7Ci0gICAgcmV0dXJuIGdldEVsZW1lbnRzQnlUYWdOYW1lTlMo
IioiLCBuYW1lKTsKKyAgICByZXR1cm4gZ2V0RWxlbWVudHNCeVRhZ05hbWVOUyhzdGFyQXRvbSwg
bmFtZSk7CiB9CiAgCi1QYXNzUmVmUHRyPE5vZGVMaXN0PiBOb2RlOjpnZXRFbGVtZW50c0J5VGFn
TmFtZU5TKGNvbnN0IFN0cmluZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBTdHJpbmcmIGxvY2FsTmFt
ZSkKK1Bhc3NSZWZQdHI8Tm9kZUxpc3Q+IE5vZGU6OmdldEVsZW1lbnRzQnlUYWdOYW1lTlMoY29u
c3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IFN0cmluZyYgbG9jYWxOYW1lKQog
ewogICAgIGlmIChsb2NhbE5hbWUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiAwOwpAQCAtMTM5
OCw3ICsxMzk4LDcgQEAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gTm9kZTo6Z2V0RWxlbWVudHNCeQog
ICAgIGlmIChyZXN1bHQuc2Vjb25kKQogICAgICAgICByZXN1bHQuZmlyc3QtPnNlY29uZCA9IG5l
dyBEeW5hbWljTm9kZUxpc3Q6OkNhY2hlczsKICAgICAKLSAgICByZXR1cm4gVGFnTm9kZUxpc3Q6
OmNyZWF0ZSh0aGlzLCBuYW1lc3BhY2VVUkkuaXNFbXB0eSgpID8gbnVsbEF0b20gOiBBdG9taWNT
dHJpbmcobmFtZXNwYWNlVVJJKSwgbmFtZSwgcmVzdWx0LmZpcnN0LT5zZWNvbmQpOworICAgIHJl
dHVybiBUYWdOb2RlTGlzdDo6Y3JlYXRlKHRoaXMsIG5hbWVzcGFjZVVSSS5pc0VtcHR5KCkgPyBu
dWxsQXRvbSA6IG5hbWVzcGFjZVVSSSwgbmFtZSwgcmVzdWx0LmZpcnN0LT5zZWNvbmQpOwogfQog
CiBQYXNzUmVmUHRyPE5vZGVMaXN0PiBOb2RlOjpnZXRFbGVtZW50c0J5TmFtZShjb25zdCBTdHJp
bmcmIGVsZW1lbnROYW1lKQpAQCAtMTYxNCw3ICsxNjE0LDcgQEAgYm9vbCBOb2RlOjppc0VxdWFs
Tm9kZShOb2RlICpvdGhlcikgY29ucwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIE5vZGU6
OmlzRGVmYXVsdE5hbWVzcGFjZShjb25zdCBTdHJpbmcgJm5hbWVzcGFjZVVSSSkgY29uc3QKK2Jv
b2wgTm9kZTo6aXNEZWZhdWx0TmFtZXNwYWNlKGNvbnN0IEF0b21pY1N0cmluZyAmbmFtZXNwYWNl
VVJJKSBjb25zdAogewogICAgIC8vIEltcGxlbWVudGVkIGFjY29yZGluZyB0bwogICAgIC8vIGh0
dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcvbmFt
ZXNwYWNlcy1hbGdvcml0aG1zLmh0bWwjaXNEZWZhdWx0TmFtZXNwYWNlQWxnbwpAQCAtMTY2NCw3
ICsxNjY0LDcgQEAgYm9vbCBOb2RlOjppc0RlZmF1bHROYW1lc3BhY2UoY29uc3QgU3RyaQogICAg
IH0KIH0KIAotU3RyaW5nIE5vZGU6Omxvb2t1cFByZWZpeChjb25zdCBTdHJpbmcgJm5hbWVzcGFj
ZVVSSSkgY29uc3QKK1N0cmluZyBOb2RlOjpsb29rdXBQcmVmaXgoY29uc3QgQXRvbWljU3RyaW5n
ICZuYW1lc3BhY2VVUkkpIGNvbnN0CiB7CiAgICAgLy8gSW1wbGVtZW50ZWQgYWNjb3JkaW5nIHRv
CiAgICAgLy8gaHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMtRE9NLUxldmVsLTMtQ29yZS0y
MDA0MDQwNy9uYW1lc3BhY2VzLWFsZ29yaXRobXMuaHRtbCNsb29rdXBOYW1lc3BhY2VQcmVmaXhB
bGdvCkBAIC0xNzU5LDcgKzE3NTksNyBAQCBTdHJpbmcgTm9kZTo6bG9va3VwTmFtZXNwYWNlVVJJ
KGNvbnN0IFN0CiAgICAgfQogfQogCi1TdHJpbmcgTm9kZTo6bG9va3VwTmFtZXNwYWNlUHJlZml4
KGNvbnN0IFN0cmluZyAmX25hbWVzcGFjZVVSSSwgY29uc3QgRWxlbWVudCAqb3JpZ2luYWxFbGVt
ZW50KSBjb25zdAorU3RyaW5nIE5vZGU6Omxvb2t1cE5hbWVzcGFjZVByZWZpeChjb25zdCBBdG9t
aWNTdHJpbmcgJl9uYW1lc3BhY2VVUkksIGNvbnN0IEVsZW1lbnQgKm9yaWdpbmFsRWxlbWVudCkg
Y29uc3QKIHsKICAgICBpZiAoX25hbWVzcGFjZVVSSS5pc051bGwoKSkKICAgICAgICAgcmV0dXJu
IFN0cmluZygpOwpJbmRleDogV2ViQ29yZS9kb20vTm9kZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvZG9tL05vZGUuaAkocmV2aXNpb24gMzk1OTUpCisrKyBXZWJDb3JlL2RvbS9Ob2RlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTE0MiwxMCArMTQyLDEwIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNT
YW1lTm9kZShOb2RlKiBvdGhlcikgY29uc3QgeyByZXR1cm4gdGhpcyA9PSBvdGhlcjsgfQogICAg
IGJvb2wgaXNFcXVhbE5vZGUoTm9kZSopIGNvbnN0OwotICAgIGJvb2wgaXNEZWZhdWx0TmFtZXNw
YWNlKGNvbnN0IFN0cmluZyYgbmFtZXNwYWNlVVJJKSBjb25zdDsKLSAgICBTdHJpbmcgbG9va3Vw
UHJlZml4KGNvbnN0IFN0cmluZyYgbmFtZXNwYWNlVVJJKSBjb25zdDsKKyAgICBib29sIGlzRGVm
YXVsdE5hbWVzcGFjZShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSkgY29uc3Q7Cisg
ICAgU3RyaW5nIGxvb2t1cFByZWZpeChjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSkg
Y29uc3Q7CiAgICAgU3RyaW5nIGxvb2t1cE5hbWVzcGFjZVVSSShjb25zdCBTdHJpbmcmIHByZWZp
eCkgY29uc3Q7Ci0gICAgU3RyaW5nIGxvb2t1cE5hbWVzcGFjZVByZWZpeChjb25zdCBTdHJpbmcm
IG5hbWVzcGFjZVVSSSwgY29uc3QgRWxlbWVudCogb3JpZ2luYWxFbGVtZW50KSBjb25zdDsKKyAg
ICBTdHJpbmcgbG9va3VwTmFtZXNwYWNlUHJlZml4KGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNw
YWNlVVJJLCBjb25zdCBFbGVtZW50KiBvcmlnaW5hbEVsZW1lbnQpIGNvbnN0OwogICAgIAogICAg
IFN0cmluZyB0ZXh0Q29udGVudChib29sIGNvbnZlcnRCUnNUb05ld2xpbmVzID0gZmFsc2UpIGNv
bnN0OwogICAgIHZvaWQgc2V0VGV4dENvbnRlbnQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29k
ZSYpOwpAQCAtNDgxLDcgKzQ4MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG5vdGlmeUxvY2FsTm9k
ZUxpc3RzQXR0cmlidXRlQ2hhbmdlZCgpOwogICAgIAogICAgIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+
IGdldEVsZW1lbnRzQnlUYWdOYW1lKGNvbnN0IFN0cmluZyYpOwotICAgIFBhc3NSZWZQdHI8Tm9k
ZUxpc3Q+IGdldEVsZW1lbnRzQnlUYWdOYW1lTlMoY29uc3QgU3RyaW5nJiBuYW1lc3BhY2VVUkks
IGNvbnN0IFN0cmluZyYgbG9jYWxOYW1lKTsKKyAgICBQYXNzUmVmUHRyPE5vZGVMaXN0PiBnZXRF
bGVtZW50c0J5VGFnTmFtZU5TKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJLCBjb25z
dCBTdHJpbmcmIGxvY2FsTmFtZSk7CiAgICAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gZ2V0RWxlbWVu
dHNCeU5hbWUoY29uc3QgU3RyaW5nJiBlbGVtZW50TmFtZSk7CiAgICAgUGFzc1JlZlB0cjxOb2Rl
TGlzdD4gZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShjb25zdCBTdHJpbmcmIGNsYXNzTmFtZXMpOwog
Cg==
</data>
<flag name="review"
          id="12531"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26452</attachid>
            <date>2009-01-05 23:07:37 -0800</date>
            <delta_ts>2009-01-05 23:12:52 -0800</delta_ts>
            <desc>Cuts the time spent in AtomicString::add() by slightly more than half.</desc>
            <filename>redundantatomicstrings2.txt</filename>
            <type>text/plain</type>
            <size>3109</size>
            <attacher name="David Smith">catfish.man</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzOTY0MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMDktMDEtMDUgIERhdmlkIFNtaXRoICA8Y2F0ZmlzaC5tYW5AZ21h
aWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA4NAorICAgICAgICBB
dm9pZCByZWR1bmRhbnQgQXRvbWljU3RyaW5nIGNvbnZlcnNpb25zCisKKyAgICAgICAgKiBkb20v
Tm9kZS5jcHA6IENyZWF0ZSBhbiBBdG9taWNTdHJpbmcgZWFybHkgdG8gYXZvaWQgY29udmVydGlu
ZyB0d2ljZQorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6Z2V0RWxlbWVudHNCeVRhZ05hbWVOUyk6
CisgICAgICAgICogZG9tL1F1YWxpZmllZE5hbWUuaDogVXNlIHRoZSBhcHByb3ByaWF0ZSBBdG9t
aWNTdHJpbmcgY29uc3RydWN0b3IgaW5zdGVhZCBvZiBjb252ZXJ0aW5nIGZyb20gYSBTdHJpbmcK
KwogMjAwOS0wMS0wNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEYXZlIEh5YXR0CkBAIC00NzMsNiArNDg0LDcgQEAKIAogICAg
ICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVudC4KIAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwODQKICAgICAgICAgQXZvaWQgcmVkdW5kYW50IEF0
b21pY1N0cmluZyBjb252ZXJzaW9ucwogCiAgICAgICAgICogZG9tL05vZGUuY3BwOgpJbmRleDog
V2ViQ29yZS9kb20vTm9kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vTm9kZS5jcHAJ
KHJldmlzaW9uIDM5NTk2KQorKysgV2ViQ29yZS9kb20vTm9kZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEzOTMsMTIgKzEzOTMsMTQgQEAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gTm9kZTo6Z2V0RWxl
bWVudHNCeQogICAgIFN0cmluZyBuYW1lID0gbG9jYWxOYW1lOwogICAgIGlmIChkb2N1bWVudCgp
LT5pc0hUTUxEb2N1bWVudCgpKQogICAgICAgICBuYW1lID0gbG9jYWxOYW1lLmxvd2VyKCk7Cisg
ICAgCisgICAgQXRvbWljU3RyaW5nIGxvY2FsTmFtZUF0b20gPSBuYW1lOwogICAgICAgICAKLSAg
ICBwYWlyPE5vZGVMaXN0c05vZGVEYXRhOjpUYWdDYWNoZU1hcDo6aXRlcmF0b3IsIGJvb2w+IHJl
c3VsdCA9IGRhdGEtPm5vZGVMaXN0cygpLT5tX3RhZ05vZGVMaXN0Q2FjaGVzLmFkZChRdWFsaWZp
ZWROYW1lKG51bGxBdG9tLCBuYW1lLCBuYW1lc3BhY2VVUkkpLCAwKTsKKyAgICBwYWlyPE5vZGVM
aXN0c05vZGVEYXRhOjpUYWdDYWNoZU1hcDo6aXRlcmF0b3IsIGJvb2w+IHJlc3VsdCA9IGRhdGEt
Pm5vZGVMaXN0cygpLT5tX3RhZ05vZGVMaXN0Q2FjaGVzLmFkZChRdWFsaWZpZWROYW1lKG51bGxB
dG9tLCBsb2NhbE5hbWVBdG9tLCBuYW1lc3BhY2VVUkkpLCAwKTsKICAgICBpZiAocmVzdWx0LnNl
Y29uZCkKICAgICAgICAgcmVzdWx0LmZpcnN0LT5zZWNvbmQgPSBuZXcgRHluYW1pY05vZGVMaXN0
OjpDYWNoZXM7CiAgICAgCi0gICAgcmV0dXJuIFRhZ05vZGVMaXN0OjpjcmVhdGUodGhpcywgbmFt
ZXNwYWNlVVJJLmlzRW1wdHkoKSA/IG51bGxBdG9tIDogbmFtZXNwYWNlVVJJLCBuYW1lLCByZXN1
bHQuZmlyc3QtPnNlY29uZCk7CisgICAgcmV0dXJuIFRhZ05vZGVMaXN0OjpjcmVhdGUodGhpcywg
bmFtZXNwYWNlVVJJLmlzRW1wdHkoKSA/IG51bGxBdG9tIDogbmFtZXNwYWNlVVJJLCBsb2NhbE5h
bWVBdG9tLCByZXN1bHQuZmlyc3QtPnNlY29uZCk7CiB9CiAKIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+
IE5vZGU6OmdldEVsZW1lbnRzQnlOYW1lKGNvbnN0IFN0cmluZyYgZWxlbWVudE5hbWUpCkluZGV4
OiBXZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20v
UXVhbGlmaWVkTmFtZS5oCShyZXZpc2lvbiAzOTU5NSkKKysrIFdlYkNvcmUvZG9tL1F1YWxpZmll
ZE5hbWUuaAkod29ya2luZyBjb3B5KQpAQCAtMTYxLDcgKzE2MSw3IEBAIG5hbWVzcGFjZSBXVEYg
ewogICAgIHRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8V2ViQ29yZTo6UXVhbGlmaWVkTmFt
ZT4gOiBHZW5lcmljSGFzaFRyYWl0czxXZWJDb3JlOjpRdWFsaWZpZWROYW1lPiB7CiAgICAgICAg
IHN0YXRpYyBjb25zdCBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBmYWxzZTsKICAgICAgICAgc3Rh
dGljIFdlYkNvcmU6OlF1YWxpZmllZE5hbWUgZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIFdlYkNvcmU6
OlF1YWxpZmllZE5hbWUoV2ViQ29yZTo6bnVsbEF0b20sIFdlYkNvcmU6Om51bGxBdG9tLCBXZWJD
b3JlOjpudWxsQXRvbSk7IH0KLSAgICAgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZh
bHVlKFdlYkNvcmU6OlF1YWxpZmllZE5hbWUmIHNsb3QpIHsgbmV3ICgmc2xvdCkgV2ViQ29yZTo6
UXVhbGlmaWVkTmFtZShXZWJDb3JlOjpudWxsQXRvbSwgV2ViQ29yZTo6U3RyaW5nKEhhc2hUYWJs
ZURlbGV0ZWRWYWx1ZSksIFdlYkNvcmU6Om51bGxBdG9tKTsgfQorICAgICAgICBzdGF0aWMgdm9p
ZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoV2ViQ29yZTo6UXVhbGlmaWVkTmFtZSYgc2xvdCkgeyBu
ZXcgKCZzbG90KSBXZWJDb3JlOjpRdWFsaWZpZWROYW1lKFdlYkNvcmU6Om51bGxBdG9tLCBXZWJD
b3JlOjpBdG9taWNTdHJpbmcoSGFzaFRhYmxlRGVsZXRlZFZhbHVlKSwgV2ViQ29yZTo6bnVsbEF0
b20pOyB9CiAgICAgICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IFdlYkNvcmU6
OlF1YWxpZmllZE5hbWUmIHNsb3QpIHsgcmV0dXJuIHNsb3QubG9jYWxOYW1lKCkuaXNIYXNoVGFi
bGVEZWxldGVkVmFsdWUoKTsgfQogICAgIH07CiB9Cg==
</data>
<flag name="review"
          id="12546"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>