<?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>20561</bug_id>
          
          <creation_ts>2008-08-28 12:03:11 -0700</creation_ts>
          <short_desc>&quot;isFoo()&quot; methods on CSSValue and subclasses should all be const</short_desc>
          <delta_ts>2008-08-28 15:29:39 -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>CSS</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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>darin</cc>
    
    <cc>hyatt</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>89661</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2008-08-28 12:03:11 -0700</bug_when>
    <thetext>CSSValue implements:

    virtual bool isValueList() { return false; }

and CSSValueList has both:

public:
    virtual bool isValueList() const { return true; } 
and
private:
    virtual bool isValueList() { return true; }

Much hilarity ensues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89663</commentid>
    <comment_count>1</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-08-28 12:11:46 -0700</bug_when>
    <thetext>Making all be const or all be non-const would be equally good -- obviously a mix is bad!

I don&apos;t think it&apos;s all that useful to have const member functions on objects that are in tree-like structures like the DOM classes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89679</commentid>
    <comment_count>2</comment_count>
      <attachid>23059</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2008-08-28 14:20:35 -0700</bug_when>
    <thetext>Created attachment 23059
Patch, changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89680</commentid>
    <comment_count>3</comment_count>
      <attachid>23059</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-08-28 14:26:53 -0700</bug_when>
    <thetext>Comment on attachment 23059
Patch, changelog

I don&apos;t think the derived class isValueList() should be private.  Put it where the old non-const one was instead?

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89681</commentid>
    <comment_count>4</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-08-28 14:27:07 -0700</bug_when>
    <thetext>Unless it compiles, in which case never mind. :)

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89683</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2008-08-28 14:29:51 -0700</bug_when>
    <thetext>Committed r35978
	M	WebCore/ChangeLog
	M	WebCore/css/FontValue.h
	M	WebCore/css/CSSValueList.h
	M	WebCore/css/CSSValue.h
	M	WebCore/css/CSSTimingFunctionValue.h
r35978 = 28bad1a29d4699bd6fdaf11e87b2361af4dd856a (trunk)
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89687</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-08-28 14:45:16 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; I don&apos;t think the derived class isValueList() should be private.  Put it where
&gt; the old non-const one was instead?

There&apos;s a reason to make it private. If you already have a CSSValueList and you call isValueList() it&apos;d be great if you got a compile time error, so then you&apos;d realize it was unnecessary to check.

That&apos;s why I usually like to have these functions private once they&apos;re in a class where it&apos;s a &quot;dumb thing to ask&quot;. Overriding the base class still works fine, because overriding ignores public vs. private.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89690</commentid>
    <comment_count>7</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-08-28 15:29:39 -0700</bug_when>
    <thetext>Yeah I figured that out after commenting in the bug.   Thanks for confirming my suspicions.
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23059</attachid>
            <date>2008-08-28 14:20:35 -0700</date>
            <delta_ts>2008-08-28 14:26:53 -0700</delta_ts>
            <desc>Patch, changelog</desc>
            <filename>const_methods.txt</filename>
            <type>text/plain</type>
            <size>3227</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NzM1ZTJlNy4uYjY2Y2EwYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAwOC0wOC0yOCAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBNYWtlIGFsbCB0aGUgJ2lzRm9vKCknIG1ldGhvZHMgb24gQ1NT
VmFsdWUgY29uc3QsCisgICAgICAgIGFuZCBmaXggdGhlIHN1YmNsYXNzZXMuCisgICAgICAgIAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1NjEKKyAg
ICAgICAgCisgICAgICAgICogY3NzL0NTU1RpbWluZ0Z1bmN0aW9uVmFsdWUuaDoKKyAgICAgICAg
KiBjc3MvQ1NTVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjppc0ZvbnRWYWx1
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6aXNJbWFnZUdlbmVyYXRvclZhbHVlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjppc0ltYWdlVmFsdWUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTVmFsdWU6OmlzSW1wbGljaXRJbml0aWFsVmFsdWUpOgorICAgICAgICAqIGNzcy9D
U1NWYWx1ZUxpc3QuaDoKKyAgICAgICAgKiBjc3MvRm9udFZhbHVlLmg6CisKIDIwMDgtMDgtMjgg
IEJyYWQgR2FyY2lhICA8YmdhcmNpYUBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IERhbiBCZXJuc3RlaW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NUaW1pbmdGdW5jdGlv
blZhbHVlLmggYi9XZWJDb3JlL2Nzcy9DU1NUaW1pbmdGdW5jdGlvblZhbHVlLmgKaW5kZXggZmZh
NDU1Yy4uZTQ2NTk5MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTVGltaW5nRnVuY3Rpb25W
YWx1ZS5oCisrKyBiL1dlYkNvcmUvY3NzL0NTU1RpbWluZ0Z1bmN0aW9uVmFsdWUuaApAQCAtNTQs
NyArNTQsNyBAQCBwcml2YXRlOgogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNU
aW1pbmdGdW5jdGlvblZhbHVlKCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBp
c1RpbWluZ0Z1bmN0aW9uVmFsdWUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgCiAgICAg
ZG91YmxlIG1feDE7CiAgICAgZG91YmxlIG1feTE7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9D
U1NWYWx1ZS5oIGIvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaAppbmRleCBmZmRmNDJmLi4yZjc4NDcw
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCisrKyBiL1dlYkNvcmUvY3NzL0NT
U1ZhbHVlLmgKQEAgLTQ3LDEzICs0NywxMyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcg
Y3NzVGV4dCgpIGNvbnN0ID0gMDsKICAgICB2b2lkIHNldENzc1RleHQoY29uc3QgU3RyaW5nJiwg
RXhjZXB0aW9uQ29kZSYpIHsgfSAvLyBGSVhNRTogTm90IGltcGxlbWVudGVkLgogCi0gICAgdmly
dHVhbCBib29sIGlzRm9udFZhbHVlKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgaXNGb250VmFsdWUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9v
bCBpc0ltYWdlR2VuZXJhdG9yVmFsdWUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBpc0ltYWdlVmFsdWUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBpc0ltcGxpY2l0SW5pdGlhbFZhbHVlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNQcmltaXRpdmVWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzVGltaW5nRnVuY3Rpb25WYWx1ZSgpIHsgcmV0dXJu
IGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzVmFsdWVMaXN0KCkgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNUaW1pbmdGdW5jdGlvblZhbHVlKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNWYWx1ZUxpc3QoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogCiAjaWYgRU5BQkxFKFNWRykKICAgICB2aXJ0dWFsIGJvb2wgaXNTVkdDb2xv
cigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NW
YWx1ZUxpc3QuaCBiL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5oCmluZGV4IDNlY2NiZjkuLjAw
NmI5ZGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5oCisrKyBiL1dlYkNv
cmUvY3NzL0NTU1ZhbHVlTGlzdC5oCkBAIC00Niw4ICs0Niw2IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgfkNTU1ZhbHVlTGlzdCgpOwogCi0gICAgdmlydHVhbCBib29sIGlzVmFsdWVMaXN0KCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotCiAgICAgc2l6ZV90IGxlbmd0aCgpIGNvbnN0IHsgcmV0
dXJuIG1fdmFsdWVzLnNpemUoKTsgfQogICAgIENTU1ZhbHVlKiBpdGVtKHVuc2lnbmVkKTsKICAg
ICBDU1NWYWx1ZSogaXRlbVdpdGhvdXRCb3VuZHNDaGVjayh1bnNpZ25lZCBpbmRleCkgeyByZXR1
cm4gbV92YWx1ZXNbaW5kZXhdLmdldCgpOyB9CkBAIC02NCw3ICs2Miw3IEBAIHByb3RlY3RlZDoK
ICAgICBDU1NWYWx1ZUxpc3QoQ1NTUGFyc2VyVmFsdWVMaXN0Kik7CiAKIHByaXZhdGU6Ci0gICAg
dmlydHVhbCBib29sIGlzVmFsdWVMaXN0KCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwg
Ym9vbCBpc1ZhbHVlTGlzdCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZpcnR1YWwg
dW5zaWduZWQgc2hvcnQgY3NzVmFsdWVUeXBlKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvY3NzL0ZvbnRWYWx1ZS5oIGIvV2ViQ29yZS9jc3MvRm9udFZhbHVlLmgKaW5kZXggMWEwYTM4
Yy4uNWM3NDA2YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvRm9udFZhbHVlLmgKKysrIGIvV2Vi
Q29yZS9jc3MvRm9udFZhbHVlLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBGb250VmFsdWUoKSB7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBpc0ZvbnRWYWx1ZSgpIHsg
cmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNGb250VmFsdWUoKSBjb25zdCB7IHJl
dHVybiB0cnVlOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZQo=
</data>
<flag name="review"
          id="10268"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>