<?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>71824</bug_id>
          
          <creation_ts>2011-11-08 09:03:10 -0800</creation_ts>
          <short_desc>CSSImageGeneratorValue: Devirtualize image(), isFixedSize() and fixedSize().</short_desc>
          <delta_ts>2012-01-08 15:28:52 -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>CSS</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>71666</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>darin</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tczene</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>498122</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-11-08 09:03:10 -0800</bug_when>
    <thetext>SSIA.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498124</commentid>
    <comment_count>1</comment_count>
      <attachid>114088</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-11-08 09:07:26 -0800</bug_when>
    <thetext>Created attachment 114088
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498132</commentid>
    <comment_count>2</comment_count>
      <attachid>114088</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-11-08 09:18:17 -0800</bug_when>
    <thetext>Comment on attachment 114088
Patch

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

&gt; Source/WebCore/css/CSSImageGeneratorValue.cpp:134
&gt; +    default:
&gt; +        ASSERT_NOT_REACHED();

If you leave out the default and put the ASSERT_NOT_REACHED outside the switch statement, then some compilers, including clang, will check that all values of the enum are handled and give a warning if they are not. I think you should do that.

&gt; Source/WebCore/css/CSSImageGeneratorValue.cpp:151
&gt; +    default:
&gt; +        ASSERT_NOT_REACHED();

Here too.

&gt; Source/WebCore/css/CSSImageGeneratorValue.cpp:168
&gt; +    default:
&gt; +        ASSERT_NOT_REACHED();

Here too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498136</commentid>
    <comment_count>3</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-11-08 09:22:58 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 114088 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=114088&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/css/CSSImageGeneratorValue.cpp:134
&gt; &gt; +    default:
&gt; &gt; +        ASSERT_NOT_REACHED();
&gt; 
&gt; If you leave out the default and put the ASSERT_NOT_REACHED outside the switch statement, then some compilers, including clang, will check that all values of the enum are handled and give a warning if they are not. I think you should do that.

Only a subset of the CSSValue::ClassType values are CSSImageGeneratorValue subclass types, so we don&apos;t want cases for all of them here, hence the ASSERT_NOT_REACHED().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498140</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-11-08 09:30:58 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Only a subset of the CSSValue::ClassType values are CSSImageGeneratorValue subclass types, so we don&apos;t want cases for all of them here, hence the ASSERT_NOT_REACHED().

OK.

In other cases I have actually added all the cases like this:

{
    switch {
    case HandledCase1:
        [...]
        return x;
    [...]
    case UnhandledCase1:
    case UnhandledCase2:
    case UnhandledCase3:
        break;
    }
    ASSERT_NOT_REACHED();
    return x;
}

Clearly, whether that’s worthwhile or not depends on the likelihood of adding a new case that is not an image generator subclass or adding a new case that is an image generator subclass. You probably want to leave it as-is, but worth thinking about in future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498144</commentid>
    <comment_count>5</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-11-08 09:36:08 -0800</bug_when>
    <thetext>Committed r99577: &lt;http://trac.webkit.org/changeset/99577&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502318</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-11-14 14:28:35 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; SSIA.

No it doesn&apos;t. Why devirtualize? Was this a measurable performance gain? On what content?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502347</commentid>
    <comment_count>7</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-11-14 15:01:24 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #0)
&gt; &gt; SSIA.
&gt; 
&gt; No it doesn&apos;t. Why devirtualize? Was this a measurable performance gain? On what content?

This was part of devirtualizing CSSValue to reduce memory usage (tracked on bug 71666, culminating in this commit: &lt;http://trac.webkit.org/changeset/99592&gt;.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531843</commentid>
    <comment_count>8</comment_count>
    <who name="David Barr">davidbarr</who>
    <bug_when>2012-01-08 15:28:52 -0800</bug_when>
    <thetext>*** Bug 64862 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114088</attachid>
            <date>2011-11-08 09:07:26 -0800</date>
            <delta_ts>2011-11-08 09:18:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71824.diff</filename>
            <type>text/plain</type>
            <size>6832</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5OGRiYWY1Li5lNWZjYmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjcg
QEAKIDIwMTEtMTEtMDggIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgogCisgICAg
ICAgIENTU0ltYWdlR2VuZXJhdG9yVmFsdWU6IERldmlydHVhbGl6ZSBpbWFnZSgpLCBpc0ZpeGVk
U2l6ZSgpIGFuZCBmaXhlZFNpemUoKS4KKyAgICAgICAgPGh0dHA6Ly93ZWJraXQub3JnL2IvNzE4
MjQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVk
aXJlY3QgdGhlIGNhbGxzIHRvIHRoZSBhcHByb3ByaWF0ZSBzdWJjbGFzcyBpbiBDU1NJbWFnZUdl
bmVyYXRvclZhbHVlLmNwcC4KKworICAgICAgICAqIGNzcy9DU1NDYW52YXNWYWx1ZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTQ2FudmFzVmFsdWU6OmlzRml4ZWRTaXplKToKKyAgICAgICAgKiBj
c3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZh
bHVlOjppc0ZpeGVkU2l6ZSk6CisgICAgICAgICogY3NzL0NTU0dyYWRpZW50VmFsdWUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU0dyYWRpZW50VmFsdWU6OmlzRml4ZWRTaXplKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU0dyYWRpZW50VmFsdWU6OmZpeGVkU2l6ZSk6CisgICAgICAgICogY3NzL0NT
U0ltYWdlR2VuZXJhdG9yVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VHZW5l
cmF0b3JWYWx1ZTo6aW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VHZW5lcmF0b3JW
YWx1ZTo6aXNGaXhlZFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VHZW5lcmF0b3JW
YWx1ZTo6Zml4ZWRTaXplKToKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5o
OgorCisyMDExLTExLTA4ICBBbmRyZWFzIEtsaW5nICA8a2xpbmdAd2Via2l0Lm9yZz4KKwogICAg
ICAgICBDU1NJbWFnZVZhbHVlOiBEZXZpcnR1YWxpemUgY2FjaGVkSW1hZ2UoQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIqKS4KICAgICAgICAgPGh0dHA6Ly93ZWJraXQub3JnL2IvNzE4MTQ+CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYW52YXNWYWx1ZS5oIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0NhbnZhc1ZhbHVlLmgKaW5kZXggNDMwZGEwZi4uMTAxYjU4MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbnZhc1ZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0NhbnZhc1ZhbHVlLmgKQEAgLTQwLDkgKzQwLDkgQEAgcHVibGljOgogCiAgICAg
U3RyaW5nIGN1c3RvbUNzc1RleHQoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJ
bWFnZT4gaW1hZ2UoUmVuZGVyT2JqZWN0KiwgY29uc3QgSW50U2l6ZSYpOwotICAgIHZpcnR1YWwg
Ym9vbCBpc0ZpeGVkU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIElu
dFNpemUgZml4ZWRTaXplKGNvbnN0IFJlbmRlck9iamVjdCopOworICAgIFBhc3NSZWZQdHI8SW1h
Z2U+IGltYWdlKFJlbmRlck9iamVjdCosIGNvbnN0IEludFNpemUmKTsKKyAgICBib29sIGlzRml4
ZWRTaXplKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIEludFNpemUgZml4ZWRTaXplKGNv
bnN0IFJlbmRlck9iamVjdCopOwogCiAgICAgdm9pZCBzZXROYW1lKGNvbnN0IFN0cmluZyYgbmFt
ZSkgeyBtX25hbWUgPSBuYW1lOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NDcm9zc2ZhZGVWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVl
LmgKaW5kZXggOTBmYzI3OC4uZjJhNGFkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0Nyb3NzZmFkZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFk
ZVZhbHVlLmgKQEAgLTQyLDkgKzQyLDkgQEAgcHVibGljOgogCiAgICAgU3RyaW5nIGN1c3RvbUNz
c1RleHQoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJbWFnZT4gaW1hZ2UoUmVu
ZGVyT2JqZWN0KiwgY29uc3QgSW50U2l6ZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBp
c0ZpeGVkU2l6ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVh
bCBJbnRTaXplIGZpeGVkU2l6ZShjb25zdCBSZW5kZXJPYmplY3QqKSBPVkVSUklERTsKKyAgICBQ
YXNzUmVmUHRyPEltYWdlPiBpbWFnZShSZW5kZXJPYmplY3QqLCBjb25zdCBJbnRTaXplJik7Cisg
ICAgYm9vbCBpc0ZpeGVkU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgSW50U2l6
ZSBmaXhlZFNpemUoY29uc3QgUmVuZGVyT2JqZWN0Kik7CiAKICAgICB2b2lkIHNldFBlcmNlbnRh
Z2UoUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGVyY2VudGFnZSkgeyBtX3BlcmNlbnRh
Z2UgPSBwZXJjZW50YWdlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NH
cmFkaWVudFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5oCmlu
ZGV4IDU5YzA3ODguLmYxM2FjOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NH
cmFkaWVudFZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUu
aApAQCAtNDYsNyArNDYsNyBAQCBzdHJ1Y3QgQ1NTR3JhZGllbnRDb2xvclN0b3AgewogCiBjbGFz
cyBDU1NHcmFkaWVudFZhbHVlIDogcHVibGljIENTU0ltYWdlR2VuZXJhdG9yVmFsdWUgewogcHVi
bGljOgotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJbWFnZT4gaW1hZ2UoUmVuZGVyT2JqZWN0Kiwg
Y29uc3QgSW50U2l6ZSYpOworICAgIFBhc3NSZWZQdHI8SW1hZ2U+IGltYWdlKFJlbmRlck9iamVj
dCosIGNvbnN0IEludFNpemUmKTsKIAogICAgIHZvaWQgc2V0Rmlyc3RYKFBhc3NSZWZQdHI8Q1NT
UHJpbWl0aXZlVmFsdWU+IHZhbCkgeyBtX2ZpcnN0WCA9IHZhbDsgfQogICAgIHZvaWQgc2V0Rmly
c3RZKFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHZhbCkgeyBtX2ZpcnN0WSA9IHZhbDsg
fQpAQCAtNjYsNiArNjYsOSBAQCBwdWJsaWM6CiAKICAgICBib29sIGRlcHJlY2F0ZWRUeXBlKCkg
Y29uc3QgeyByZXR1cm4gbV9kZXByZWNhdGVkVHlwZTsgfSAvLyBjYW1lIGZyb20gLXdlYmtpdC1n
cmFkaWVudAogCisgICAgYm9vbCBpc0ZpeGVkU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CisgICAgSW50U2l6ZSBmaXhlZFNpemUoY29uc3QgUmVuZGVyT2JqZWN0KikgY29uc3QgeyByZXR1
cm4gSW50U2l6ZSgpOyB9CisKIHByb3RlY3RlZDoKICAgICBDU1NHcmFkaWVudFZhbHVlKENsYXNz
VHlwZSBjbGFzc1R5cGUsIENTU0dyYWRpZW50UmVwZWF0IHJlcGVhdCwgYm9vbCBkZXByZWNhdGVk
VHlwZSA9IGZhbHNlKQogICAgICAgICA6IENTU0ltYWdlR2VuZXJhdG9yVmFsdWUoY2xhc3NUeXBl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUuY3BwCmluZGV4
IDgzMzBkODQuLjFjM2M2NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFn
ZUdlbmVyYXRvclZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VHZW5l
cmF0b3JWYWx1ZS5jcHAKQEAgLTI2LDYgKzI2LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJDU1NJbWFnZUdlbmVyYXRvclZhbHVlLmgiCiAKKyNpbmNsdWRlICJDU1NDYW52YXNW
YWx1ZS5oIgorI2luY2x1ZGUgIkNTU0Nyb3NzZmFkZVZhbHVlLmgiCisjaW5jbHVkZSAiQ1NTR3Jh
ZGllbnRWYWx1ZS5oIgogI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0
LmgiCiAjaW5jbHVkZSAiU3R5bGVHZW5lcmF0ZWRJbWFnZS5oIgpAQCAtMTE2LDQgKzExOSw1NSBA
QCBTdHlsZUdlbmVyYXRlZEltYWdlKiBDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjpnZW5lcmF0ZWRJ
bWFnZSgpCiAgICAgcmV0dXJuIG1faW1hZ2UuZ2V0KCk7CiB9CiAKK1Bhc3NSZWZQdHI8SW1hZ2U+
IENTU0ltYWdlR2VuZXJhdG9yVmFsdWU6OmltYWdlKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIGNv
bnN0IEludFNpemUmIHNpemUpCit7CisgICAgc3dpdGNoIChjbGFzc1R5cGUoKSkgeworICAgIGNh
c2UgQ2FudmFzQ2xhc3M6CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxDU1NDYW52YXNWYWx1
ZSo+KHRoaXMpLT5pbWFnZShyZW5kZXJlciwgc2l6ZSk7CisgICAgY2FzZSBDcm9zc2ZhZGVDbGFz
czoKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PENTU0Nyb3NzZmFkZVZhbHVlKj4odGhpcykt
PmltYWdlKHJlbmRlcmVyLCBzaXplKTsKKyAgICBjYXNlIExpbmVhckdyYWRpZW50Q2xhc3M6Cisg
ICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxDU1NMaW5lYXJHcmFkaWVudFZhbHVlKj4odGhpcykt
PmltYWdlKHJlbmRlcmVyLCBzaXplKTsKKyAgICBjYXNlIFJhZGlhbEdyYWRpZW50Q2xhc3M6Cisg
ICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxDU1NSYWRpYWxHcmFkaWVudFZhbHVlKj4odGhpcykt
PmltYWdlKHJlbmRlcmVyLCBzaXplKTsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK2Jvb2wgQ1NTSW1hZ2VHZW5l
cmF0b3JWYWx1ZTo6aXNGaXhlZFNpemUoKSBjb25zdAoreworICAgIHN3aXRjaCAoY2xhc3NUeXBl
KCkpIHsKKyAgICBjYXNlIENhbnZhc0NsYXNzOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
Y29uc3QgQ1NTQ2FudmFzVmFsdWUqPih0aGlzKS0+aXNGaXhlZFNpemUoKTsKKyAgICBjYXNlIENy
b3NzZmFkZUNsYXNzOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgQ1NTQ3Jvc3Nm
YWRlVmFsdWUqPih0aGlzKS0+aXNGaXhlZFNpemUoKTsKKyAgICBjYXNlIExpbmVhckdyYWRpZW50
Q2xhc3M6CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBDU1NMaW5lYXJHcmFkaWVu
dFZhbHVlKj4odGhpcyktPmlzRml4ZWRTaXplKCk7CisgICAgY2FzZSBSYWRpYWxHcmFkaWVudENs
YXNzOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgQ1NTUmFkaWFsR3JhZGllbnRW
YWx1ZSo+KHRoaXMpLT5pc0ZpeGVkU2l6ZSgpOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK0ludFNpemUg
Q1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6Zml4ZWRTaXplKGNvbnN0IFJlbmRlck9iamVjdCogcmVu
ZGVyZXIpCit7CisgICAgc3dpdGNoIChjbGFzc1R5cGUoKSkgeworICAgIGNhc2UgQ2FudmFzQ2xh
c3M6CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxDU1NDYW52YXNWYWx1ZSo+KHRoaXMpLT5m
aXhlZFNpemUocmVuZGVyZXIpOworICAgIGNhc2UgQ3Jvc3NmYWRlQ2xhc3M6CisgICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxDU1NDcm9zc2ZhZGVWYWx1ZSo+KHRoaXMpLT5maXhlZFNpemUocmVu
ZGVyZXIpOworICAgIGNhc2UgTGluZWFyR3JhZGllbnRDbGFzczoKKyAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PENTU0xpbmVhckdyYWRpZW50VmFsdWUqPih0aGlzKS0+Zml4ZWRTaXplKHJlbmRl
cmVyKTsKKyAgICBjYXNlIFJhZGlhbEdyYWRpZW50Q2xhc3M6CisgICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDxDU1NSYWRpYWxHcmFkaWVudFZhbHVlKj4odGhpcyktPmZpeGVkU2l6ZShyZW5kZXJl
cik7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQor
ICAgIHJldHVybiBJbnRTaXplKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5oCmluZGV4IDg4NDBjMWQuLmE0
YzI5YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZUdlbmVyYXRvclZh
bHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUuaApA
QCAtNTYsMTIgKzU2LDEyIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYWRkQ2xpZW50KFJlbmRlck9i
amVjdCosIGNvbnN0IEludFNpemUmKTsKICAgICB2b2lkIHJlbW92ZUNsaWVudChSZW5kZXJPYmpl
Y3QqKTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SW1hZ2U+IGltYWdlKFJlbmRlck9iamVjdCos
IGNvbnN0IEludFNpemUmKSA9IDA7CisgICAgUGFzc1JlZlB0cjxJbWFnZT4gaW1hZ2UoUmVuZGVy
T2JqZWN0KiwgY29uc3QgSW50U2l6ZSYpOwogCiAgICAgU3R5bGVHZW5lcmF0ZWRJbWFnZSogZ2Vu
ZXJhdGVkSW1hZ2UoKTsKIAotICAgIHZpcnR1YWwgYm9vbCBpc0ZpeGVkU2l6ZSgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBJbnRTaXplIGZpeGVkU2l6ZShjb25zdCBSZW5k
ZXJPYmplY3QqKSB7IHJldHVybiBJbnRTaXplKCk7IH0KKyAgICBib29sIGlzRml4ZWRTaXplKCkg
Y29uc3Q7CisgICAgSW50U2l6ZSBmaXhlZFNpemUoY29uc3QgUmVuZGVyT2JqZWN0Kik7CiAKIHBy
b3RlY3RlZDoKICAgICBDU1NJbWFnZUdlbmVyYXRvclZhbHVlKENsYXNzVHlwZSk7Cg==
</data>
<flag name="review"
          id="112638"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>