<?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>121238</bug_id>
          
          <creation_ts>2013-09-12 10:52:15 -0700</creation_ts>
          <short_desc>Bitmap&apos;s WordType should be a template parameter</short_desc>
          <delta_ts>2013-09-12 15:26:10 -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>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>
          
          <blocked>121074</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>928377</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-09-12 10:52:15 -0700</bug_when>
    <thetext>The code is written as if it already is. We just need to lift it out of the class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928396</commentid>
    <comment_count>1</comment_count>
      <attachid>211449</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-09-12 11:18:25 -0700</bug_when>
    <thetext>Created attachment 211449
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928432</commentid>
    <comment_count>2</comment_count>
      <attachid>211449</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-09-12 12:34:28 -0700</bug_when>
    <thetext>Comment on attachment 211449
Patch

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

&gt; Source/WTF/ChangeLog:26
&gt; +        (WTF::::Bitmap):
&gt; +        (WTF::::get):
&gt; +        (WTF::::set):
&gt; +        (WTF::::testAndSet):
&gt; +        (WTF::::testAndClear):
&gt; +        (WTF::::concurrentTestAndSet):
&gt; +        (WTF::::concurrentTestAndClear):
&gt; +        (WTF::::clear):
&gt; +        (WTF::::clearAll):
&gt; +        (WTF::::nextPossiblyUnset):
&gt; +        (WTF::::findRunOfZeros):
&gt; +        (WTF::::count):
&gt; +        (WTF::::isEmpty):
&gt; +        (WTF::::isFull):

The prepare-ChangeLog script made a mess here. I suggest inserting the class name Bitmap into these function names.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928437</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-09-12 12:47:50 -0700</bug_when>
    <thetext>Committed r155640: &lt;http://trac.webkit.org/changeset/155640&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928523</commentid>
    <comment_count>4</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-09-12 15:22:21 -0700</bug_when>
    <thetext>Are you planning to use an &apos;unsigned char&apos; WordType in the GC?

Two thoughts:

(1) I wonder if we should just mandate &quot;byte at a time&quot; for bitmap. Why do we need to customize?

(2) It&apos;s important to preserve some of the &quot;machine word at a time&quot; optimizations even if the client requests a byte word size. For example, nextPossiblyUnset should work a machine word at a time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928525</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-09-12 15:26:10 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Are you planning to use an &apos;unsigned char&apos; WordType in the GC?
&gt; 
Yep. It allows us to be more accurate when we&apos;re checking for mark bits (i.e. there&apos;s only 7 other objects that could confuse us into taking the slow path rather than 31).

&gt; Two thoughts:
&gt; 
&gt; (1) I wonder if we should just mandate &quot;byte at a time&quot; for bitmap. Why do we need to customize?
&gt;
I thought it would be better to leave the choice to the client, although I guess before this patch the client didn&apos;t have a choice either.
 
&gt; (2) It&apos;s important to preserve some of the &quot;machine word at a time&quot; optimizations even if the client requests a byte word size. For example, nextPossiblyUnset should work a machine word at a time.
Okay. I filed https://bugs.webkit.org/show_bug.cgi?id=121266.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211449</attachid>
            <date>2013-09-12 11:18:25 -0700</date>
            <delta_ts>2013-09-12 12:34:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121238-20130912111821.patch</filename>
            <type>text/plain</type>
            <size>7391</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNTU2MzIpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDEzLTA5LTEyICBNYXJrIEhhaG5lbmJlcmcgIDxt
aGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQml0bWFwJ3MgV29yZFR5cGUgc2hvdWxk
IGJlIGEgdGVtcGxhdGUgcGFyYW1ldGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjEyMzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGUgY29kZSBpcyB3cml0dGVuIGFzIGlmIGl0IGFscmVhZHkgaXMu
IFdlIGp1c3QgbmVlZCB0byBsaWZ0IGl0IG91dCBvZiB0aGUgY2xhc3MuCisgICAgICAgIFRoaXMg
c2ltcGxpZmllcyBjb2RlIHRoYXQgd2FudHMgdG8gbG9hZCwgZm9yIGV4YW1wbGUsIGEgc2luZ2xl
IGJ5dGUgcmF0aGVyIHRoYW4gYW4gCisgICAgICAgIGVudGlyZSAzMi1iaXQgd29yZC4gCisKKyAg
ICAgICAgKiB3dGYvQml0bWFwLmg6CisgICAgICAgIChXVEY6Ojo6Qml0bWFwKToKKyAgICAgICAg
KFdURjo6OjpnZXQpOgorICAgICAgICAoV1RGOjo6OnNldCk6CisgICAgICAgIChXVEY6Ojo6dGVz
dEFuZFNldCk6CisgICAgICAgIChXVEY6Ojo6dGVzdEFuZENsZWFyKToKKyAgICAgICAgKFdURjo6
Ojpjb25jdXJyZW50VGVzdEFuZFNldCk6CisgICAgICAgIChXVEY6Ojo6Y29uY3VycmVudFRlc3RB
bmRDbGVhcik6CisgICAgICAgIChXVEY6Ojo6Y2xlYXIpOgorICAgICAgICAoV1RGOjo6OmNsZWFy
QWxsKToKKyAgICAgICAgKFdURjo6OjpuZXh0UG9zc2libHlVbnNldCk6CisgICAgICAgIChXVEY6
Ojo6ZmluZFJ1bk9mWmVyb3MpOgorICAgICAgICAoV1RGOjo6OmNvdW50KToKKyAgICAgICAgKFdU
Rjo6Ojppc0VtcHR5KToKKyAgICAgICAgKFdURjo6Ojppc0Z1bGwpOgorCiAyMDEzLTA5LTEyICBB
bmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHJ1ZGlt
ZW50YXJ5IHN1cHBvcnQgZm9yIG1vdmUtb25seSB0eXBlcyBhcyB2YWx1ZXMgaW4gSGFzaE1hcApJ
bmRleDogU291cmNlL1dURi93dGYvQml0bWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93
dGYvQml0bWFwLmgJKHJldmlzaW9uIDE1NTYzMikKKysrIFNvdXJjZS9XVEYvd3RmL0JpdG1hcC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxMSArMzYsOCBAQCBlbnVtIEJpdG1hcEF0b21pY01vZGUg
ewogICAgIEJpdG1hcEF0b21pYwogfTsKIAotdGVtcGxhdGU8c2l6ZV90IHNpemUsIEJpdG1hcEF0
b21pY01vZGUgYXRvbWljTW9kZSA9IEJpdG1hcE5vdEF0b21pYz4KK3RlbXBsYXRlPHNpemVfdCBz
aXplLCBCaXRtYXBBdG9taWNNb2RlIGF0b21pY01vZGUgPSBCaXRtYXBOb3RBdG9taWMsIHR5cGVu
YW1lIFdvcmRUeXBlID0gdWludDMyX3Q+CiBjbGFzcyBCaXRtYXAgewotcHJpdmF0ZToKLSAgICB0
eXBlZGVmIHVpbnQzMl90IFdvcmRUeXBlOwotCiBwdWJsaWM6CiAgICAgQml0bWFwKCk7CiAKQEAg
LTU5LDggKzU2LDggQEAgcHVibGljOgogICAgIHNpemVfdCBpc0Z1bGwoKSBjb25zdDsKIAogcHJp
dmF0ZToKLSAgICBzdGF0aWMgY29uc3QgV29yZFR5cGUgd29yZFNpemUgPSBzaXplb2YoV29yZFR5
cGUpICogODsKLSAgICBzdGF0aWMgY29uc3QgV29yZFR5cGUgd29yZHMgPSAoc2l6ZSArIHdvcmRT
aXplIC0gMSkgLyB3b3JkU2l6ZTsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgd29yZFNpemUg
PSBzaXplb2YoV29yZFR5cGUpICogODsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgd29yZHMg
PSAoc2l6ZSArIHdvcmRTaXplIC0gMSkgLyB3b3JkU2l6ZTsKIAogICAgIC8vIHRoZSBsaXRlcmFs
ICcxJyBpcyBvZiB0eXBlIHNpZ25lZCBpbnQuICBXZSB3YW50IHRvIHVzZSBhbiB1bnNpZ25lZAog
ICAgIC8vIHZlcnNpb24gb2YgdGhlIGNvcnJlY3Qgc2l6ZSB3aGVuIGRvaW5nIHRoZSBjYWxjdWxh
dGlvbnMgYmVjYXVzZSBpZgpAQCAtNzIsMjYgKzY5LDI2IEBAIHByaXZhdGU6CiAgICAgRml4ZWRB
cnJheTxXb3JkVHlwZSwgd29yZHM+IGJpdHM7CiB9OwogCi10ZW1wbGF0ZTxzaXplX3Qgc2l6ZSwg
Qml0bWFwQXRvbWljTW9kZSBhdG9taWNNb2RlPgotaW5saW5lIEJpdG1hcDxzaXplLCBhdG9taWNN
b2RlPjo6Qml0bWFwKCkKK3RlbXBsYXRlPHNpemVfdCBzaXplLCBCaXRtYXBBdG9taWNNb2RlIGF0
b21pY01vZGUsIHR5cGVuYW1lIFdvcmRUeXBlPgoraW5saW5lIEJpdG1hcDxzaXplLCBhdG9taWNN
b2RlLCBXb3JkVHlwZT46OkJpdG1hcCgpCiB7CiAgICAgY2xlYXJBbGwoKTsKIH0KIAotdGVtcGxh
dGU8c2l6ZV90IHNpemUsIEJpdG1hcEF0b21pY01vZGUgYXRvbWljTW9kZT4KLWlubGluZSBib29s
IEJpdG1hcDxzaXplLCBhdG9taWNNb2RlPjo6Z2V0KHNpemVfdCBuKSBjb25zdAordGVtcGxhdGU8
c2l6ZV90IHNpemUsIEJpdG1hcEF0b21pY01vZGUgYXRvbWljTW9kZSwgdHlwZW5hbWUgV29yZFR5
cGU+CitpbmxpbmUgYm9vbCBCaXRtYXA8c2l6ZSwgYXRvbWljTW9kZSwgV29yZFR5cGU+OjpnZXQo
c2l6ZV90IG4pIGNvbnN0CiB7CiAgICAgcmV0dXJuICEhKGJpdHNbbiAvIHdvcmRTaXplXSAmIChv
bmUgPDwgKG4gJSB3b3JkU2l6ZSkpKTsKIH0KIAotdGVtcGxhdGU8c2l6ZV90IHNpemUsIEJpdG1h
cEF0b21pY01vZGUgYXRvbWljTW9kZT4KLWlubGluZSB2b2lkIEJpdG1hcDxzaXplLCBhdG9taWNN
b2RlPjo6c2V0KHNpemVfdCBuKQordGVtcGxhdGU8c2l6ZV90IHNpemUsIEJpdG1hcEF0b21pY01v
ZGUgYXRvbWljTW9kZSwgdHlwZW5hbWUgV29yZFR5cGU+CitpbmxpbmUgdm9pZCBCaXRtYXA8c2l6
ZSwgYXRvbWljTW9kZSwgV29yZFR5cGU+OjpzZXQoc2l6ZV90IG4pCiB7CiAgICAgYml0c1tuIC8g
d29yZFNpemVdIHw9IChvbmUgPDwgKG4gJSB3b3JkU2l6ZSkpOwogfQogCi10ZW1wbGF0ZTxzaXpl
X3Qgc2l6ZSwgQml0bWFwQXRvbWljTW9kZSBhdG9taWNNb2RlPgotaW5saW5lIGJvb2wgQml0bWFw
PHNpemUsIGF0b21pY01vZGU+Ojp0ZXN0QW5kU2V0KHNpemVfdCBuKQordGVtcGxhdGU8c2l6ZV90
IHNpemUsIEJpdG1hcEF0b21pY01vZGUgYXRvbWljTW9kZSwgdHlwZW5hbWUgV29yZFR5cGU+Citp
bmxpbmUgYm9vbCBCaXRtYXA8c2l6ZSwgYXRvbWljTW9kZSwgV29yZFR5cGU+Ojp0ZXN0QW5kU2V0
KHNpemVfdCBuKQogewogICAgIFdvcmRUeXBlIG1hc2sgPSBvbmUgPDwgKG4gJSB3b3JkU2l6ZSk7
CiAgICAgc2l6ZV90IGluZGV4ID0gbiAvIHdvcmRTaXplOwpAQCAtMTAwLDggKzk3LDggQEAgaW5s
aW5lIGJvb2wgQml0bWFwPHNpemUsIGF0b21pY01vZGU+Ojp0ZQogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKLXRlbXBsYXRlPHNpemVfdCBzaXplLCBCaXRtYXBBdG9taWNNb2RlIGF0b21pY01vZGU+
Ci1pbmxpbmUgYm9vbCBCaXRtYXA8c2l6ZSwgYXRvbWljTW9kZT46OnRlc3RBbmRDbGVhcihzaXpl
X3QgbikKK3RlbXBsYXRlPHNpemVfdCBzaXplLCBCaXRtYXBBdG9taWNNb2RlIGF0b21pY01vZGUs
IHR5cGVuYW1lIFdvcmRUeXBlPgoraW5saW5lIGJvb2wgQml0bWFwPHNpemUsIGF0b21pY01vZGUs
IFdvcmRUeXBlPjo6dGVzdEFuZENsZWFyKHNpemVfdCBuKQogewogICAgIFdvcmRUeXBlIG1hc2sg
PSBvbmUgPDwgKG4gJSB3b3JkU2l6ZSk7CiAgICAgc2l6ZV90IGluZGV4ID0gbiAvIHdvcmRTaXpl
OwpAQCAtMTEwLDggKzEwNyw4IEBAIGlubGluZSBib29sIEJpdG1hcDxzaXplLCBhdG9taWNNb2Rl
Pjo6dGUKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi10ZW1wbGF0ZTxzaXplX3Qgc2l6ZSwgQml0
bWFwQXRvbWljTW9kZSBhdG9taWNNb2RlPgotaW5saW5lIGJvb2wgQml0bWFwPHNpemUsIGF0b21p
Y01vZGU+Ojpjb25jdXJyZW50VGVzdEFuZFNldChzaXplX3QgbikKK3RlbXBsYXRlPHNpemVfdCBz
aXplLCBCaXRtYXBBdG9taWNNb2RlIGF0b21pY01vZGUsIHR5cGVuYW1lIFdvcmRUeXBlPgoraW5s
aW5lIGJvb2wgQml0bWFwPHNpemUsIGF0b21pY01vZGUsIFdvcmRUeXBlPjo6Y29uY3VycmVudFRl
c3RBbmRTZXQoc2l6ZV90IG4pCiB7CiAgICAgaWYgKGF0b21pY01vZGUgPT0gQml0bWFwTm90QXRv
bWljKQogICAgICAgICByZXR1cm4gdGVzdEFuZFNldChuKTsKQEAgLTEzMCw4ICsxMjcsOCBAQCBp
bmxpbmUgYm9vbCBCaXRtYXA8c2l6ZSwgYXRvbWljTW9kZT46OmNvCiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCi10ZW1wbGF0ZTxzaXplX3Qgc2l6ZSwgQml0bWFwQXRvbWljTW9kZSBhdG9taWNNb2Rl
PgotaW5saW5lIGJvb2wgQml0bWFwPHNpemUsIGF0b21pY01vZGU+Ojpjb25jdXJyZW50VGVzdEFu
ZENsZWFyKHNpemVfdCBuKQordGVtcGxhdGU8c2l6ZV90IHNpemUsIEJpdG1hcEF0b21pY01vZGUg
YXRvbWljTW9kZSwgdHlwZW5hbWUgV29yZFR5cGU+CitpbmxpbmUgYm9vbCBCaXRtYXA8c2l6ZSwg
YXRvbWljTW9kZSwgV29yZFR5cGU+Ojpjb25jdXJyZW50VGVzdEFuZENsZWFyKHNpemVfdCBuKQog
ewogICAgIGlmIChhdG9taWNNb2RlID09IEJpdG1hcE5vdEF0b21pYykKICAgICAgICAgcmV0dXJu
IHRlc3RBbmRDbGVhcihuKTsKQEAgLTE1MCwyOCArMTQ3LDI4IEBAIGlubGluZSBib29sIEJpdG1h
cDxzaXplLCBhdG9taWNNb2RlPjo6Y28KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdGVtcGxhdGU8
c2l6ZV90IHNpemUsIEJpdG1hcEF0b21pY01vZGUgYXRvbWljTW9kZT4KLWlubGluZSB2b2lkIEJp
dG1hcDxzaXplLCBhdG9taWNNb2RlPjo6Y2xlYXIoc2l6ZV90IG4pCit0ZW1wbGF0ZTxzaXplX3Qg
c2l6ZSwgQml0bWFwQXRvbWljTW9kZSBhdG9taWNNb2RlLCB0eXBlbmFtZSBXb3JkVHlwZT4KK2lu
bGluZSB2b2lkIEJpdG1hcDxzaXplLCBhdG9taWNNb2RlLCBXb3JkVHlwZT46OmNsZWFyKHNpemVf
dCBuKQogewogICAgIGJpdHNbbiAvIHdvcmRTaXplXSAmPSB+KG9uZSA8PCAobiAlIHdvcmRTaXpl
KSk7CiB9CiAKLXRlbXBsYXRlPHNpemVfdCBzaXplLCBCaXRtYXBBdG9taWNNb2RlIGF0b21pY01v
ZGU+Ci1pbmxpbmUgdm9pZCBCaXRtYXA8c2l6ZSwgYXRvbWljTW9kZT46OmNsZWFyQWxsKCkKK3Rl
bXBsYXRlPHNpemVfdCBzaXplLCBCaXRtYXBBdG9taWNNb2RlIGF0b21pY01vZGUsIHR5cGVuYW1l
IFdvcmRUeXBlPgoraW5saW5lIHZvaWQgQml0bWFwPHNpemUsIGF0b21pY01vZGUsIFdvcmRUeXBl
Pjo6Y2xlYXJBbGwoKQogewogICAgIG1lbXNldChiaXRzLmRhdGEoKSwgMCwgc2l6ZW9mKGJpdHMp
KTsKIH0KIAotdGVtcGxhdGU8c2l6ZV90IHNpemUsIEJpdG1hcEF0b21pY01vZGUgYXRvbWljTW9k
ZT4KLWlubGluZSBzaXplX3QgQml0bWFwPHNpemUsIGF0b21pY01vZGU+OjpuZXh0UG9zc2libHlV
bnNldChzaXplX3Qgc3RhcnQpIGNvbnN0Cit0ZW1wbGF0ZTxzaXplX3Qgc2l6ZSwgQml0bWFwQXRv
bWljTW9kZSBhdG9taWNNb2RlLCB0eXBlbmFtZSBXb3JkVHlwZT4KK2lubGluZSBzaXplX3QgQml0
bWFwPHNpemUsIGF0b21pY01vZGUsIFdvcmRUeXBlPjo6bmV4dFBvc3NpYmx5VW5zZXQoc2l6ZV90
IHN0YXJ0KSBjb25zdAogewogICAgIGlmICghfmJpdHNbc3RhcnQgLyB3b3JkU2l6ZV0pCiAgICAg
ICAgIHJldHVybiAoKHN0YXJ0IC8gd29yZFNpemUpICsgMSkgKiB3b3JkU2l6ZTsKICAgICByZXR1
cm4gc3RhcnQgKyAxOwogfQogCi10ZW1wbGF0ZTxzaXplX3Qgc2l6ZSwgQml0bWFwQXRvbWljTW9k
ZSBhdG9taWNNb2RlPgotaW5saW5lIGludDY0X3QgQml0bWFwPHNpemUsIGF0b21pY01vZGU+Ojpm
aW5kUnVuT2ZaZXJvcyhzaXplX3QgcnVuTGVuZ3RoKSBjb25zdAordGVtcGxhdGU8c2l6ZV90IHNp
emUsIEJpdG1hcEF0b21pY01vZGUgYXRvbWljTW9kZSwgdHlwZW5hbWUgV29yZFR5cGU+Citpbmxp
bmUgaW50NjRfdCBCaXRtYXA8c2l6ZSwgYXRvbWljTW9kZSwgV29yZFR5cGU+OjpmaW5kUnVuT2Za
ZXJvcyhzaXplX3QgcnVuTGVuZ3RoKSBjb25zdAogewogICAgIGlmICghcnVuTGVuZ3RoKSAKICAg
ICAgICAgcnVuTGVuZ3RoID0gMTsgCkBAIC0xOTAsOCArMTg3LDggQEAgaW5saW5lIGludDY0X3Qg
Qml0bWFwPHNpemUsIGF0b21pY01vZGU+OgogICAgIHJldHVybiAtMTsKIH0KIAotdGVtcGxhdGU8
c2l6ZV90IHNpemUsIEJpdG1hcEF0b21pY01vZGUgYXRvbWljTW9kZT4KLWlubGluZSBzaXplX3Qg
Qml0bWFwPHNpemUsIGF0b21pY01vZGU+Ojpjb3VudChzaXplX3Qgc3RhcnQpIGNvbnN0Cit0ZW1w
bGF0ZTxzaXplX3Qgc2l6ZSwgQml0bWFwQXRvbWljTW9kZSBhdG9taWNNb2RlLCB0eXBlbmFtZSBX
b3JkVHlwZT4KK2lubGluZSBzaXplX3QgQml0bWFwPHNpemUsIGF0b21pY01vZGUsIFdvcmRUeXBl
Pjo6Y291bnQoc2l6ZV90IHN0YXJ0KSBjb25zdAogewogICAgIHNpemVfdCByZXN1bHQgPSAwOwog
ICAgIGZvciAoIDsgKHN0YXJ0ICUgd29yZFNpemUpOyArK3N0YXJ0KSB7CkBAIC0yMDMsOCArMjAw
LDggQEAgaW5saW5lIHNpemVfdCBCaXRtYXA8c2l6ZSwgYXRvbWljTW9kZT46OgogICAgIHJldHVy
biByZXN1bHQ7CiB9CiAKLXRlbXBsYXRlPHNpemVfdCBzaXplLCBCaXRtYXBBdG9taWNNb2RlIGF0
b21pY01vZGU+Ci1pbmxpbmUgc2l6ZV90IEJpdG1hcDxzaXplLCBhdG9taWNNb2RlPjo6aXNFbXB0
eSgpIGNvbnN0Cit0ZW1wbGF0ZTxzaXplX3Qgc2l6ZSwgQml0bWFwQXRvbWljTW9kZSBhdG9taWNN
b2RlLCB0eXBlbmFtZSBXb3JkVHlwZT4KK2lubGluZSBzaXplX3QgQml0bWFwPHNpemUsIGF0b21p
Y01vZGUsIFdvcmRUeXBlPjo6aXNFbXB0eSgpIGNvbnN0CiB7CiAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCB3b3JkczsgKytpKQogICAgICAgICBpZiAoYml0c1tpXSkKQEAgLTIxMiw4ICsyMDks
OCBAQCBpbmxpbmUgc2l6ZV90IEJpdG1hcDxzaXplLCBhdG9taWNNb2RlPjo6CiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLXRlbXBsYXRlPHNpemVfdCBzaXplLCBCaXRtYXBBdG9taWNNb2RlIGF0b21p
Y01vZGU+Ci1pbmxpbmUgc2l6ZV90IEJpdG1hcDxzaXplLCBhdG9taWNNb2RlPjo6aXNGdWxsKCkg
Y29uc3QKK3RlbXBsYXRlPHNpemVfdCBzaXplLCBCaXRtYXBBdG9taWNNb2RlIGF0b21pY01vZGUs
IHR5cGVuYW1lIFdvcmRUeXBlPgoraW5saW5lIHNpemVfdCBCaXRtYXA8c2l6ZSwgYXRvbWljTW9k
ZSwgV29yZFR5cGU+Ojppc0Z1bGwoKSBjb25zdAogewogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgd29yZHM7ICsraSkKICAgICAgICAgaWYgKH5iaXRzW2ldKQo=
</data>
<flag name="review"
          id="233551"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>