<?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>23974</bug_id>
          
          <creation_ts>2009-02-16 10:52:23 -0800</creation_ts>
          <short_desc>Deque::Remove would be a useful method.</short_desc>
          <delta_ts>2009-02-18 16:30:03 -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>Web Template Framework</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>23976</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="David Levin">levin</reporter>
          <assigned_to name="David Levin">levin</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>109860</commentid>
    <comment_count>0</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-02-16 10:52:23 -0800</bug_when>
    <thetext>This is simply a way to remove an item from within a deque.

Although it shouldn&apos;t be the primary means of removing items from a queue, it is useful to have.  (This will be used in support of a feature addition to a message queue.)

Also, the implementation of copy for deque iterators is missing an implemention of WTF::DequeIteratorBase&lt;T&gt;::operator=.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109863</commentid>
    <comment_count>1</comment_count>
      <attachid>27701</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-02-16 10:59:32 -0800</bug_when>
    <thetext>Created attachment 27701
Patch for bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109888</commentid>
    <comment_count>2</comment_count>
      <attachid>27709</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-02-16 14:26:22 -0800</bug_when>
    <thetext>Created attachment 27709
Proposed fix.

Remove one extra blank line from last patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>110095</commentid>
    <comment_count>3</comment_count>
      <attachid>27709</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-02-18 11:06:48 -0800</bug_when>
    <thetext>Comment on attachment 27709
Proposed fix.

&gt; +        Add Deque::remove and Deque*Iterator::copy.

As discussed on IRC, it&apos;s quite unclear why DequeIteratorBase&lt;T&gt;::operator= was added, an explanation in ChangeLog would help a lot. Concrete iterators assignment operators were calling Base::assign(), which in turn called this unimplemented operator=. We could only get away with that because all this code was unused.

Other containers&apos; remove() methods have an early return for end(), so Deque::remove should have it, too.

r=me, with this bug fixed, and a better ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>110137</commentid>
    <comment_count>4</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-02-18 16:30:03 -0800</bug_when>
    <thetext>Committed as r41068.
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27701</attachid>
            <date>2009-02-16 10:59:32 -0800</date>
            <delta_ts>2009-02-16 14:26:22 -0800</delta_ts>
            <desc>Patch for bug.</desc>
            <filename>bug23974.txt</filename>
            <type>text/plain</type>
            <size>5271</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA1ZjkzZjMwLi4xNjBhOGUwIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMDktMDItMTYgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ1ZyAyMzk3NDogRGVx
dWU6OlJlbW92ZSB3b3VsZCBiZSBhIHVzZWZ1bCBtZXRob2QuCisgICAgICAgIDxodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NzQ+CisKKyAgICAgICAgQWRkIERlcXVl
OjpyZW1vdmUgYW5kIERlcXVlKkl0ZXJhdG9yOjpjb3B5LgorCisgICAgICAgICogd3RmL0RlcXVl
Lmg6CisgICAgICAgIChXVEY6OkRlcXVlPFQ+OjpyZW1vdmUpOgorICAgICAgICAoV1RGOjpEZXF1
ZUl0ZXJhdG9yQmFzZTxUPjo6cmVtb3ZlRnJvbUl0ZXJhdG9yc0xpc3QpOgorICAgICAgICAoV1RG
OjpEZXF1ZUl0ZXJhdG9yQmFzZTxUPjo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdURjo6RGVxdWVJ
dGVyYXRvckJhc2U8VD46On5EZXF1ZUl0ZXJhdG9yQmFzZSk6CisKIDIwMDktMDItMTMgIEFkYW0g
VHJlYXQgIDxhZGFtLnRyZWF0QHRvcmNobW9iaWxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBHZW9yZ2UgU3RhaWtvcy4KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3d0Zi9EZXF1ZS5o
IGIvSmF2YVNjcmlwdENvcmUvd3RmL0RlcXVlLmgKaW5kZXggNzBjNTQ2Yi4uZWIwN2U5YiAxMDA2
NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvd3RmL0RlcXVlLmgKKysrIGIvSmF2YVNjcmlwdENvcmUv
d3RmL0RlcXVlLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA3LCAy
MDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
OSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC03NSw2ICs3Niw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBVPiB2b2lkIGFwcGVuZChjb25zdCBVJik7CiAgICAgICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFU+IHZvaWQgcHJlcGVuZChjb25zdCBVJik7CiAgICAgICAgIHZvaWQgcmVtb3Zl
Rmlyc3QoKTsKKyAgICAgICAgdm9pZCByZW1vdmUoRGVxdWVJdGVyYXRvckJhc2U8VD4mKTsKIAog
ICAgICAgICB2b2lkIGNsZWFyKCk7CiAKQEAgLTEyNCw2ICsxMjYsNyBAQCBuYW1lc3BhY2UgV1RG
IHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIHZvaWQgYWRkVG9JdGVyYXRvcnNMaXN0KCk7Cisg
ICAgICAgIHZvaWQgcmVtb3ZlRnJvbUl0ZXJhdG9yc0xpc3QoKTsKICAgICAgICAgdm9pZCBjaGVj
a1ZhbGlkaXR5KCkgY29uc3Q7CiAgICAgICAgIHZvaWQgY2hlY2tWYWxpZGl0eShjb25zdCBCYXNl
JikgY29uc3Q7CiAKQEAgLTQ0NywxMCArNDUwLDM0IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAg
ICBjaGVja1ZhbGlkaXR5KCk7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAg
ICBpbmxpbmUgdm9pZCBEZXF1ZTxUPjo6cmVtb3ZlKERlcXVlSXRlcmF0b3JCYXNlPFQ+JiBpdCkK
KyAgICB7CisgICAgICAgIGNoZWNrVmFsaWRpdHkoKTsKKyAgICAgICAgaXQuY2hlY2tWYWxpZGl0
eSgpOworICAgICAgICBzaXplX3QgcG9zaXRpb24gPSBpdC5tX2luZGV4OworICAgICAgICBpbnZh
bGlkYXRlSXRlcmF0b3JzKCk7CisKKyAgICAgICAgVCogYnVmZmVyID0gbV9idWZmZXIuYnVmZmVy
KCk7CisgICAgICAgIFR5cGVPcGVyYXRpb25zOjpkZXN0cnVjdCgmYnVmZmVyW3Bvc2l0aW9uXSwg
JmJ1ZmZlcltwb3NpdGlvbiArIDFdKTsKKworICAgICAgICAvLyBGaW5kIHdoaWNoIHNlZ21lbnQg
b2YgdGhlIGNpcmN1bGFyIGJ1ZmZlciBjb250YWluZWQgdGhlIHJlbW92ZSBlbGVtZW50LCBhbmQg
b25seSBtb3ZlIGVsZW1lbnRzIGluIHRoYXQgcGFydC4KKyAgICAgICAgaWYgKHBvc2l0aW9uID49
IG1fc3RhcnQpIHsKKyAgICAgICAgICAgIFR5cGVPcGVyYXRpb25zOjptb3ZlT3ZlcmxhcHBpbmco
YnVmZmVyICsgbV9zdGFydCwgYnVmZmVyICsgcG9zaXRpb24sIGJ1ZmZlciArIG1fc3RhcnQgKyAx
KTsKKyAgICAgICAgICAgIG1fc3RhcnQgPSAobV9zdGFydCArIDEpICUgbV9idWZmZXIuY2FwYWNp
dHkoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFR5cGVPcGVyYXRpb25zOjptb3Zl
T3ZlcmxhcHBpbmcoYnVmZmVyICsgcG9zaXRpb24gKyAxLCBidWZmZXIgKyBtX2VuZCwgYnVmZmVy
ICsgcG9zaXRpb24pOworICAgICAgICAgICAgbV9lbmQgPSAobV9lbmQgLSAxICsgbV9idWZmZXIu
Y2FwYWNpdHkoKSkgJSBtX2J1ZmZlci5jYXBhY2l0eSgpOworICAgICAgICB9CisgICAgICAgIGNo
ZWNrVmFsaWRpdHkoKTsKKyAgICB9CisKICNpZmRlZiBOREVCVUcKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBpbmxpbmUgdm9pZCBEZXF1ZUl0ZXJhdG9yQmFzZTxUPjo6Y2hlY2tWYWxpZGl0eSgp
IGNvbnN0IHsgfQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSB2b2lkIERlcXVlSXRl
cmF0b3JCYXNlPFQ+OjpjaGVja1ZhbGlkaXR5KGNvbnN0IERlcXVlSXRlcmF0b3JCYXNlPFQ+Jikg
Y29uc3QgeyB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIHZvaWQgRGVxdWVJdGVy
YXRvckJhc2U8VD46OmFkZFRvSXRlcmF0b3JzTGlzdCgpIHsgfQorICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IGlubGluZSB2b2lkIERlcXVlSXRlcmF0b3JCYXNlPFQ+OjpyZW1vdmVGcm9tSXRlcmF0
b3JzTGlzdCgpIHsgfQorCiAjZWxzZQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiAgICAgdm9p
ZCBEZXF1ZUl0ZXJhdG9yQmFzZTxUPjo6Y2hlY2tWYWxpZGl0eSgpIGNvbnN0CkBAIC00ODAsNiAr
NTA3LDMwIEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICB9CiAgICAgICAgIG1fcHJldmlvdXMg
PSAwOwogICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgdm9pZCBEZXF1ZUl0
ZXJhdG9yQmFzZTxUPjo6cmVtb3ZlRnJvbUl0ZXJhdG9yc0xpc3QoKQorICAgIHsKKyAgICAgICAg
aWYgKCFtX2RlcXVlKSB7CisgICAgICAgICAgICBBU1NFUlQoIW1fbmV4dCk7CisgICAgICAgICAg
ICBBU1NFUlQoIW1fcHJldmlvdXMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYg
KG1fbmV4dCkgeworICAgICAgICAgICAgICAgIEFTU0VSVChtX25leHQtPm1fcHJldmlvdXMgPT0g
dGhpcyk7CisgICAgICAgICAgICAgICAgbV9uZXh0LT5tX3ByZXZpb3VzID0gbV9wcmV2aW91czsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChtX3ByZXZpb3VzKSB7CisgICAgICAgICAg
ICAgICAgQVNTRVJUKG1fZGVxdWUtPm1faXRlcmF0b3JzICE9IHRoaXMpOworICAgICAgICAgICAg
ICAgIEFTU0VSVChtX3ByZXZpb3VzLT5tX25leHQgPT0gdGhpcyk7CisgICAgICAgICAgICAgICAg
bV9wcmV2aW91cy0+bV9uZXh0ID0gbV9uZXh0OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICBBU1NFUlQobV9kZXF1ZS0+bV9pdGVyYXRvcnMgPT0gdGhpcyk7CisgICAgICAg
ICAgICAgICAgbV9kZXF1ZS0+bV9pdGVyYXRvcnMgPSBtX25leHQ7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKyAgICAgICAgbV9uZXh0ID0gMDsKKyAgICAgICAgbV9wcmV2aW91cyA9IDA7Cisg
ICAgfQogI2VuZGlmCiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpAQCAtNTA3LDMwICs1NTgs
MjUgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4K
KyAgICBpbmxpbmUgRGVxdWVJdGVyYXRvckJhc2U8VD4mIERlcXVlSXRlcmF0b3JCYXNlPFQ+Ojpv
cGVyYXRvcj0oY29uc3QgQmFzZSYgb3RoZXIpCisgICAgeworICAgICAgICBjaGVja1ZhbGlkaXR5
KCk7CisgICAgICAgIG90aGVyLmNoZWNrVmFsaWRpdHkoKTsKKyAgICAgICAgcmVtb3ZlRnJvbUl0
ZXJhdG9yc0xpc3QoKTsKKworICAgICAgICBtX2RlcXVlID0gb3RoZXIubV9kZXF1ZTsKKyAgICAg
ICAgbV9pbmRleCA9IG90aGVyLm1faW5kZXg7CisgICAgICAgIGFkZFRvSXRlcmF0b3JzTGlzdCgp
OworICAgICAgICBjaGVja1ZhbGlkaXR5KCk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9
CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogICAgIGlubGluZSBEZXF1ZUl0ZXJhdG9yQmFz
ZTxUPjo6fkRlcXVlSXRlcmF0b3JCYXNlKCkKICAgICB7CiAjaWZuZGVmIE5ERUJVRwotICAgICAg
ICAvLyBEZWxldGUgaXRlcmF0b3IgZnJvbSBkb3VibHktbGlua2VkIGxpc3Qgb2YgaXRlcmF0b3Jz
LgotICAgICAgICBpZiAoIW1fZGVxdWUpIHsKLSAgICAgICAgICAgIEFTU0VSVCghbV9uZXh0KTsK
LSAgICAgICAgICAgIEFTU0VSVCghbV9wcmV2aW91cyk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICBpZiAobV9uZXh0KSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKG1fbmV4dC0+bV9w
cmV2aW91cyA9PSB0aGlzKTsKLSAgICAgICAgICAgICAgICBtX25leHQtPm1fcHJldmlvdXMgPSBt
X3ByZXZpb3VzOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKG1fcHJldmlvdXMpIHsK
LSAgICAgICAgICAgICAgICBBU1NFUlQobV9kZXF1ZS0+bV9pdGVyYXRvcnMgIT0gdGhpcyk7Ci0g
ICAgICAgICAgICAgICAgQVNTRVJUKG1fcHJldmlvdXMtPm1fbmV4dCA9PSB0aGlzKTsKLSAgICAg
ICAgICAgICAgICBtX3ByZXZpb3VzLT5tX25leHQgPSBtX25leHQ7Ci0gICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgIEFTU0VSVChtX2RlcXVlLT5tX2l0ZXJhdG9ycyA9PSB0aGlz
KTsKLSAgICAgICAgICAgICAgICBtX2RlcXVlLT5tX2l0ZXJhdG9ycyA9IG1fbmV4dDsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfQorICAgICAgICByZW1vdmVGcm9tSXRlcmF0b3JzTGlzdCgpOwog
ICAgICAgICBtX2RlcXVlID0gMDsKLSAgICAgICAgbV9uZXh0ID0gMDsKLSAgICAgICAgbV9wcmV2
aW91cyA9IDA7CiAjZW5kaWYKICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27709</attachid>
            <date>2009-02-16 14:26:22 -0800</date>
            <delta_ts>2009-02-18 11:06:48 -0800</delta_ts>
            <desc>Proposed fix.</desc>
            <filename>bug23974-2.txt</filename>
            <type>text/plain</type>
            <size>5269</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA1ZjkzZjMwLi4xNjBhOGUwIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMDktMDItMTYgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ1ZyAyMzk3NDogRGVx
dWU6OlJlbW92ZSB3b3VsZCBiZSBhIHVzZWZ1bCBtZXRob2QuCisgICAgICAgIDxodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NzQ+CisKKyAgICAgICAgQWRkIERlcXVl
OjpyZW1vdmUgYW5kIERlcXVlKkl0ZXJhdG9yOjpjb3B5LgorCisgICAgICAgICogd3RmL0RlcXVl
Lmg6CisgICAgICAgIChXVEY6OkRlcXVlPFQ+OjpyZW1vdmUpOgorICAgICAgICAoV1RGOjpEZXF1
ZUl0ZXJhdG9yQmFzZTxUPjo6cmVtb3ZlRnJvbUl0ZXJhdG9yc0xpc3QpOgorICAgICAgICAoV1RG
OjpEZXF1ZUl0ZXJhdG9yQmFzZTxUPjo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdURjo6RGVxdWVJ
dGVyYXRvckJhc2U8VD46On5EZXF1ZUl0ZXJhdG9yQmFzZSk6CisKIDIwMDktMDItMTMgIEFkYW0g
VHJlYXQgIDxhZGFtLnRyZWF0QHRvcmNobW9iaWxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBHZW9yZ2UgU3RhaWtvcy4KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3d0Zi9EZXF1ZS5o
IGIvSmF2YVNjcmlwdENvcmUvd3RmL0RlcXVlLmgKaW5kZXggNzBjNTQ2Yi4uZWNjNGNhNyAxMDA2
NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvd3RmL0RlcXVlLmgKKysrIGIvSmF2YVNjcmlwdENvcmUv
d3RmL0RlcXVlLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA3LCAy
MDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
OSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC03NSw2ICs3Niw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBVPiB2b2lkIGFwcGVuZChjb25zdCBVJik7CiAgICAgICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFU+IHZvaWQgcHJlcGVuZChjb25zdCBVJik7CiAgICAgICAgIHZvaWQgcmVtb3Zl
Rmlyc3QoKTsKKyAgICAgICAgdm9pZCByZW1vdmUoRGVxdWVJdGVyYXRvckJhc2U8VD4mKTsKIAog
ICAgICAgICB2b2lkIGNsZWFyKCk7CiAKQEAgLTEyNCw2ICsxMjYsNyBAQCBuYW1lc3BhY2UgV1RG
IHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIHZvaWQgYWRkVG9JdGVyYXRvcnNMaXN0KCk7Cisg
ICAgICAgIHZvaWQgcmVtb3ZlRnJvbUl0ZXJhdG9yc0xpc3QoKTsKICAgICAgICAgdm9pZCBjaGVj
a1ZhbGlkaXR5KCkgY29uc3Q7CiAgICAgICAgIHZvaWQgY2hlY2tWYWxpZGl0eShjb25zdCBCYXNl
JikgY29uc3Q7CiAKQEAgLTQ0NywxMCArNDUwLDMzIEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAg
ICBjaGVja1ZhbGlkaXR5KCk7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAg
ICBpbmxpbmUgdm9pZCBEZXF1ZTxUPjo6cmVtb3ZlKERlcXVlSXRlcmF0b3JCYXNlPFQ+JiBpdCkK
KyAgICB7CisgICAgICAgIGNoZWNrVmFsaWRpdHkoKTsKKyAgICAgICAgaXQuY2hlY2tWYWxpZGl0
eSgpOworICAgICAgICBzaXplX3QgcG9zaXRpb24gPSBpdC5tX2luZGV4OworICAgICAgICBpbnZh
bGlkYXRlSXRlcmF0b3JzKCk7CisKKyAgICAgICAgVCogYnVmZmVyID0gbV9idWZmZXIuYnVmZmVy
KCk7CisgICAgICAgIFR5cGVPcGVyYXRpb25zOjpkZXN0cnVjdCgmYnVmZmVyW3Bvc2l0aW9uXSwg
JmJ1ZmZlcltwb3NpdGlvbiArIDFdKTsKKworICAgICAgICAvLyBGaW5kIHdoaWNoIHNlZ21lbnQg
b2YgdGhlIGNpcmN1bGFyIGJ1ZmZlciBjb250YWluZWQgdGhlIHJlbW92ZSBlbGVtZW50LCBhbmQg
b25seSBtb3ZlIGVsZW1lbnRzIGluIHRoYXQgcGFydC4KKyAgICAgICAgaWYgKHBvc2l0aW9uID49
IG1fc3RhcnQpIHsKKyAgICAgICAgICAgIFR5cGVPcGVyYXRpb25zOjptb3ZlT3ZlcmxhcHBpbmco
YnVmZmVyICsgbV9zdGFydCwgYnVmZmVyICsgcG9zaXRpb24sIGJ1ZmZlciArIG1fc3RhcnQgKyAx
KTsKKyAgICAgICAgICAgIG1fc3RhcnQgPSAobV9zdGFydCArIDEpICUgbV9idWZmZXIuY2FwYWNp
dHkoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFR5cGVPcGVyYXRpb25zOjptb3Zl
T3ZlcmxhcHBpbmcoYnVmZmVyICsgcG9zaXRpb24gKyAxLCBidWZmZXIgKyBtX2VuZCwgYnVmZmVy
ICsgcG9zaXRpb24pOworICAgICAgICAgICAgbV9lbmQgPSAobV9lbmQgLSAxICsgbV9idWZmZXIu
Y2FwYWNpdHkoKSkgJSBtX2J1ZmZlci5jYXBhY2l0eSgpOworICAgICAgICB9CisgICAgICAgIGNo
ZWNrVmFsaWRpdHkoKTsKKyAgICB9CisKICNpZmRlZiBOREVCVUcKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBpbmxpbmUgdm9pZCBEZXF1ZUl0ZXJhdG9yQmFzZTxUPjo6Y2hlY2tWYWxpZGl0eSgp
IGNvbnN0IHsgfQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSB2b2lkIERlcXVlSXRl
cmF0b3JCYXNlPFQ+OjpjaGVja1ZhbGlkaXR5KGNvbnN0IERlcXVlSXRlcmF0b3JCYXNlPFQ+Jikg
Y29uc3QgeyB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIHZvaWQgRGVxdWVJdGVy
YXRvckJhc2U8VD46OmFkZFRvSXRlcmF0b3JzTGlzdCgpIHsgfQorICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IGlubGluZSB2b2lkIERlcXVlSXRlcmF0b3JCYXNlPFQ+OjpyZW1vdmVGcm9tSXRlcmF0
b3JzTGlzdCgpIHsgfQogI2Vsc2UKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogICAgIHZvaWQg
RGVxdWVJdGVyYXRvckJhc2U8VD46OmNoZWNrVmFsaWRpdHkoKSBjb25zdApAQCAtNDgwLDYgKzUw
NiwzMCBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgfQogICAgICAgICBtX3ByZXZpb3VzID0g
MDsKICAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIHZvaWQgRGVxdWVJdGVy
YXRvckJhc2U8VD46OnJlbW92ZUZyb21JdGVyYXRvcnNMaXN0KCkKKyAgICB7CisgICAgICAgIGlm
ICghbV9kZXF1ZSkgeworICAgICAgICAgICAgQVNTRVJUKCFtX25leHQpOworICAgICAgICAgICAg
QVNTRVJUKCFtX3ByZXZpb3VzKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmICht
X25leHQpIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQobV9uZXh0LT5tX3ByZXZpb3VzID09IHRo
aXMpOworICAgICAgICAgICAgICAgIG1fbmV4dC0+bV9wcmV2aW91cyA9IG1fcHJldmlvdXM7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobV9wcmV2aW91cykgeworICAgICAgICAgICAg
ICAgIEFTU0VSVChtX2RlcXVlLT5tX2l0ZXJhdG9ycyAhPSB0aGlzKTsKKyAgICAgICAgICAgICAg
ICBBU1NFUlQobV9wcmV2aW91cy0+bV9uZXh0ID09IHRoaXMpOworICAgICAgICAgICAgICAgIG1f
cHJldmlvdXMtPm1fbmV4dCA9IG1fbmV4dDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAgICAgQVNTRVJUKG1fZGVxdWUtPm1faXRlcmF0b3JzID09IHRoaXMpOworICAgICAgICAg
ICAgICAgIG1fZGVxdWUtPm1faXRlcmF0b3JzID0gbV9uZXh0OworICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgICAgIG1fbmV4dCA9IDA7CisgICAgICAgIG1fcHJldmlvdXMgPSAwOworICAg
IH0KICNlbmRpZgogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KQEAgLTUwNywzMCArNTU3LDI1
IEBAIG5hbWVzcGFjZSBXVEYgewogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Cisg
ICAgaW5saW5lIERlcXVlSXRlcmF0b3JCYXNlPFQ+JiBEZXF1ZUl0ZXJhdG9yQmFzZTxUPjo6b3Bl
cmF0b3I9KGNvbnN0IEJhc2UmIG90aGVyKQorICAgIHsKKyAgICAgICAgY2hlY2tWYWxpZGl0eSgp
OworICAgICAgICBvdGhlci5jaGVja1ZhbGlkaXR5KCk7CisgICAgICAgIHJlbW92ZUZyb21JdGVy
YXRvcnNMaXN0KCk7CisKKyAgICAgICAgbV9kZXF1ZSA9IG90aGVyLm1fZGVxdWU7CisgICAgICAg
IG1faW5kZXggPSBvdGhlci5tX2luZGV4OworICAgICAgICBhZGRUb0l0ZXJhdG9yc0xpc3QoKTsK
KyAgICAgICAgY2hlY2tWYWxpZGl0eSgpOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQor
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICBpbmxpbmUgRGVxdWVJdGVyYXRvckJhc2U8
VD46On5EZXF1ZUl0ZXJhdG9yQmFzZSgpCiAgICAgewogI2lmbmRlZiBOREVCVUcKLSAgICAgICAg
Ly8gRGVsZXRlIGl0ZXJhdG9yIGZyb20gZG91Ymx5LWxpbmtlZCBsaXN0IG9mIGl0ZXJhdG9ycy4K
LSAgICAgICAgaWYgKCFtX2RlcXVlKSB7Ci0gICAgICAgICAgICBBU1NFUlQoIW1fbmV4dCk7Ci0g
ICAgICAgICAgICBBU1NFUlQoIW1fcHJldmlvdXMpOwotICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgaWYgKG1fbmV4dCkgewotICAgICAgICAgICAgICAgIEFTU0VSVChtX25leHQtPm1fcHJl
dmlvdXMgPT0gdGhpcyk7Ci0gICAgICAgICAgICAgICAgbV9uZXh0LT5tX3ByZXZpb3VzID0gbV9w
cmV2aW91czsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChtX3ByZXZpb3VzKSB7Ci0g
ICAgICAgICAgICAgICAgQVNTRVJUKG1fZGVxdWUtPm1faXRlcmF0b3JzICE9IHRoaXMpOwotICAg
ICAgICAgICAgICAgIEFTU0VSVChtX3ByZXZpb3VzLT5tX25leHQgPT0gdGhpcyk7Ci0gICAgICAg
ICAgICAgICAgbV9wcmV2aW91cy0+bV9uZXh0ID0gbV9uZXh0OwotICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICBBU1NFUlQobV9kZXF1ZS0+bV9pdGVyYXRvcnMgPT0gdGhpcyk7
Ci0gICAgICAgICAgICAgICAgbV9kZXF1ZS0+bV9pdGVyYXRvcnMgPSBtX25leHQ7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgIH0KKyAgICAgICAgcmVtb3ZlRnJvbUl0ZXJhdG9yc0xpc3QoKTsKICAg
ICAgICAgbV9kZXF1ZSA9IDA7Ci0gICAgICAgIG1fbmV4dCA9IDA7Ci0gICAgICAgIG1fcHJldmlv
dXMgPSAwOwogI2VuZGlmCiAgICAgfQogCg==
</data>
<flag name="review"
          id="13459"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>