<?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>62222</bug_id>
          
          <creation_ts>2011-06-07 11:29:22 -0700</creation_ts>
          <short_desc>JSStaticFunction and JSStaticValue are overly &quot;const&quot;</short_desc>
          <delta_ts>2011-06-07 19:00:48 -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>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Juan C. Montemayor">j.mont</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ggaren</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>416664</commentid>
    <comment_count>0</comment_count>
    <who name="Juan C. Montemayor">j.mont</who>
    <bug_when>2011-06-07 11:29:22 -0700</bug_when>
    <thetext>10/3/06 2:30 PM by John Harper:
* SUMMARY

JSStaticFunction has this definition:

typedef struct {
    const char* const name; // FIXME: convert UTF8
    JSObjectCallAsFunctionCallback callAsFunction;
    JSPropertyAttributes attributes;
} JSStaticFunction;

which means that it&apos;s impossible to initialize the name field dynamically. E.g. this code:

JSStaticFunction *fun;
fun-&gt;name = &quot;something&quot;;

fails with a compiler error. There is no reason for the second of those two &quot;const&quot; qualifiers? A cast will be needed to set the structure field..

[...]


it definitely gives a warning for me, in test.c:

#include &lt;JavaScriptCore/JavaScriptCore.h&gt;
static void foo (void)
{
    JSStaticFunction *fun;
    fun-&gt;name = &quot;something&quot;;
}

then:

$ cc -c test.c
test.c: In function &apos;foo&apos;:
test.c:7: error: assignment of read-only member &apos;name&apos;

in my actual code I did this:

*(void **)&amp;funptr-&gt;name = (void *) m-&gt;desc-&gt;jsName;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416671</commentid>
    <comment_count>1</comment_count>
      <attachid>96270</attachid>
    <who name="Juan C. Montemayor">j.mont</who>
    <bug_when>2011-06-07 11:38:03 -0700</bug_when>
    <thetext>Created attachment 96270
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416678</commentid>
    <comment_count>2</comment_count>
      <attachid>96270</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-06-07 11:41:34 -0700</bug_when>
    <thetext>Comment on attachment 96270
proposed patch

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

&gt; Source/JavaScriptCore/ChangeLog:5
&gt; +        Make JSStaticFunction and JSStaticValue less &quot;const&quot;

Why?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416679</commentid>
    <comment_count>3</comment_count>
      <attachid>96270</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-06-07 11:42:33 -0700</bug_when>
    <thetext>Comment on attachment 96270
proposed patch

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

Seems OK to change this. The other data members aren’t const, and there’s no strong argument for making these const.

&gt;&gt; Source/JavaScriptCore/ChangeLog:5
&gt;&gt; +        Make JSStaticFunction and JSStaticValue less &quot;const&quot;
&gt; 
&gt; Why?

I think I see why now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416810</commentid>
    <comment_count>4</comment_count>
      <attachid>96270</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-06-07 14:56:52 -0700</bug_when>
    <thetext>Comment on attachment 96270
proposed patch

Marking cq+ to get this landed by the commit queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416811</commentid>
    <comment_count>5</comment_count>
      <attachid>96270</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-06-07 14:59:58 -0700</bug_when>
    <thetext>Comment on attachment 96270
proposed patch

Oops!

The Windows EWS bot failed to compile, and showing this warning, which illustrates a real bug in your code:

7&gt;c:\cygwin\home\buildbot\webkit\source\javascriptcore\api\tests\testapi.c(943) : error C2220: warning treated as error - no &apos;object&apos; file generated
7&gt;c:\cygwin\home\buildbot\webkit\source\javascriptcore\api\tests\testapi.c(943) : warning C4700: uninitialized local variable &apos;fun&apos; used
7&gt;c:\cygwin\home\buildbot\webkit\source\javascriptcore\api\tests\testapi.c(945) : warning C4700: uninitialized local variable &apos;val&apos; used

You can&apos;t just declare &quot;fun&quot; as a pointer -- you need to point to something. I&apos;d suggest changing this to declare fun and val as variables on the stack.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416830</commentid>
    <comment_count>6</comment_count>
      <attachid>96309</attachid>
    <who name="Juan C. Montemayor">j.mont</who>
    <bug_when>2011-06-07 15:20:37 -0700</bug_when>
    <thetext>Created attachment 96309
proposed patch

sorry, didn&apos;t catch that in the original report. all fixed now :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417008</commentid>
    <comment_count>7</comment_count>
      <attachid>96309</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-07 19:00:44 -0700</bug_when>
    <thetext>Comment on attachment 96309
proposed patch

Clearing flags on attachment: 96309

Committed r88313: &lt;http://trac.webkit.org/changeset/88313&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417009</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-07 19:00:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96270</attachid>
            <date>2011-06-07 11:38:03 -0700</date>
            <delta_ts>2011-06-07 15:20:37 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>2481</size>
            <attacher name="Juan C. Montemayor">j.mont</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODgyNDgpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTEtMDYtMDcgIEp1YW4gQy4gTW9udGVtYXlvciAgPGptb250QGFwcGxlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIEpTU3RhdGlj
RnVuY3Rpb24gYW5kIEpTU3RhdGljVmFsdWUgbGVzcyAiY29uc3QiCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MjIyMgorCisgICAgICAgICogQVBJL0pT
T2JqZWN0UmVmLmg6CisgICAgICAgICogQVBJL3Rlc3RzL3Rlc3RhcGkuYzoKKyAgICAgICAgKGNo
ZWNrQ29uc3RuZXNzSW5KU09iamVjdE5hbWVzKToKKyAgICAgICAgKG1haW4pOgorICAgICAgICAq
IEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTEtMDYtMDYg
IEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEphbWVzIFJvYmluc29uLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U09iamVjdFJlZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNP
YmplY3RSZWYuaAkocmV2aXNpb24gODgxOTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTT2JqZWN0UmVmLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4OCw3ICsyODgsNyBAQCB0eXBlZGVm
IEpTVmFsdWVSZWYKIEBmaWVsZCBhdHRyaWJ1dGVzIEEgbG9naWNhbGx5IE9SZWQgc2V0IG9mIEpT
UHJvcGVydHlBdHRyaWJ1dGVzIHRvIGdpdmUgdG8gdGhlIHByb3BlcnR5LgogKi8KIHR5cGVkZWYg
c3RydWN0IHsKLSAgICBjb25zdCBjaGFyKiBjb25zdCBuYW1lOworICAgIGNvbnN0IGNoYXIqIG5h
bWU7CiAgICAgSlNPYmplY3RHZXRQcm9wZXJ0eUNhbGxiYWNrIGdldFByb3BlcnR5OwogICAgIEpT
T2JqZWN0U2V0UHJvcGVydHlDYWxsYmFjayBzZXRQcm9wZXJ0eTsKICAgICBKU1Byb3BlcnR5QXR0
cmlidXRlcyBhdHRyaWJ1dGVzOwpAQCAtMzAyLDcgKzMwMiw3IEBAIHR5cGVkZWYgc3RydWN0IHsK
IEBmaWVsZCBhdHRyaWJ1dGVzIEEgbG9naWNhbGx5IE9SZWQgc2V0IG9mIEpTUHJvcGVydHlBdHRy
aWJ1dGVzIHRvIGdpdmUgdG8gdGhlIHByb3BlcnR5LgogKi8KIHR5cGVkZWYgc3RydWN0IHsKLSAg
ICBjb25zdCBjaGFyKiBjb25zdCBuYW1lOworICAgIGNvbnN0IGNoYXIqIG5hbWU7CiAgICAgSlNP
YmplY3RDYWxsQXNGdW5jdGlvbkNhbGxiYWNrIGNhbGxBc0Z1bmN0aW9uOwogICAgIEpTUHJvcGVy
dHlBdHRyaWJ1dGVzIGF0dHJpYnV0ZXM7CiB9IEpTU3RhdGljRnVuY3Rpb247CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYwkocmV2aXNpb24gODgxOTcpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYwkod29ya2luZyBjb3B5
KQpAQCAtOTM3LDYgKzkzNywxNCBAQCBzdGF0aWMgYm9vbCBjaGVja0ZvckN5Y2xlSW5Qcm90b3R5
cGVDaGFpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorc3RhdGljIHZvaWQgY2hlY2tDb25zdG5l
c3NJbkpTT2JqZWN0TmFtZXMoKQoreworICAgIEpTU3RhdGljRnVuY3Rpb24gKmZ1bjsKKyAgICBm
dW4tPm5hbWUgPSAic29tZXRoaW5nIjsKKyAgICBKU1N0YXRpY1ZhbHVlICp2YWw7CisgICAgdmFs
LT5uYW1lID0gInNvbWV0aGluZyI7Cit9CisKIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2
W10pCiB7CiAjaWYgT1MoV0lORE9XUykKQEAgLTEyNTQsNiArMTI2Miw4IEBAIGludCBtYWluKGlu
dCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzQ0ZF
bXB0eVN0cmluZywgIiIpOwogICAgIGFzc2VydEVxdWFsc0FzVVRGOFN0cmluZyhqc0NGRW1wdHlT
dHJpbmdXaXRoQ2hhcmFjdGVycywgIiIpOwogICAgIAorICAgIGNoZWNrQ29uc3RuZXNzSW5KU09i
amVjdE5hbWVzKCk7CisgICAgCiAgICAgQVNTRVJUKEpTVmFsdWVJc1N0cmljdEVxdWFsKGNvbnRl
eHQsIGpzVHJ1ZSwganNUcnVlKSk7CiAgICAgQVNTRVJUKCFKU1ZhbHVlSXNTdHJpY3RFcXVhbChj
b250ZXh0LCBqc09uZSwganNPbmVTdHJpbmcpKTsK
</data>
<flag name="review"
          id="89915"
          type_id="1"
          status="-"
          setter="ggaren"
    />
    <flag name="commit-queue"
          id="89955"
          type_id="3"
          status="-"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96309</attachid>
            <date>2011-06-07 15:20:37 -0700</date>
            <delta_ts>2011-06-07 19:00:44 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>patch1.txt</filename>
            <type>text/plain</type>
            <size>2477</size>
            <attacher name="Juan C. Montemayor">j.mont</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODgyNTIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTEtMDYtMDcgIEp1YW4gQy4gTW9udGVtYXlvciAgPGptb250QGFwcGxlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIEpTU3RhdGlj
RnVuY3Rpb24gYW5kIEpTU3RhdGljVmFsdWUgbGVzcyAiY29uc3QiCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MjIyMgorCisgICAgICAgICogQVBJL0pT
T2JqZWN0UmVmLmg6CisgICAgICAgICogQVBJL3Rlc3RzL3Rlc3RhcGkuYzoKKyAgICAgICAgKGNo
ZWNrQ29uc3RuZXNzSW5KU09iamVjdE5hbWVzKToKKyAgICAgICAgKG1haW4pOgorICAgICAgICAq
IEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTEtMDYtMDYg
IEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEphbWVzIFJvYmluc29uLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U09iamVjdFJlZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNP
YmplY3RSZWYuaAkocmV2aXNpb24gODgyNTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTT2JqZWN0UmVmLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4OCw3ICsyODgsNyBAQCB0eXBlZGVm
IEpTVmFsdWVSZWYKIEBmaWVsZCBhdHRyaWJ1dGVzIEEgbG9naWNhbGx5IE9SZWQgc2V0IG9mIEpT
UHJvcGVydHlBdHRyaWJ1dGVzIHRvIGdpdmUgdG8gdGhlIHByb3BlcnR5LgogKi8KIHR5cGVkZWYg
c3RydWN0IHsKLSAgICBjb25zdCBjaGFyKiBjb25zdCBuYW1lOworICAgIGNvbnN0IGNoYXIqIG5h
bWU7CiAgICAgSlNPYmplY3RHZXRQcm9wZXJ0eUNhbGxiYWNrIGdldFByb3BlcnR5OwogICAgIEpT
T2JqZWN0U2V0UHJvcGVydHlDYWxsYmFjayBzZXRQcm9wZXJ0eTsKICAgICBKU1Byb3BlcnR5QXR0
cmlidXRlcyBhdHRyaWJ1dGVzOwpAQCAtMzAyLDcgKzMwMiw3IEBAIHR5cGVkZWYgc3RydWN0IHsK
IEBmaWVsZCBhdHRyaWJ1dGVzIEEgbG9naWNhbGx5IE9SZWQgc2V0IG9mIEpTUHJvcGVydHlBdHRy
aWJ1dGVzIHRvIGdpdmUgdG8gdGhlIHByb3BlcnR5LgogKi8KIHR5cGVkZWYgc3RydWN0IHsKLSAg
ICBjb25zdCBjaGFyKiBjb25zdCBuYW1lOworICAgIGNvbnN0IGNoYXIqIG5hbWU7CiAgICAgSlNP
YmplY3RDYWxsQXNGdW5jdGlvbkNhbGxiYWNrIGNhbGxBc0Z1bmN0aW9uOwogICAgIEpTUHJvcGVy
dHlBdHRyaWJ1dGVzIGF0dHJpYnV0ZXM7CiB9IEpTU3RhdGljRnVuY3Rpb247CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYwkocmV2aXNpb24gODgyNTIpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYwkod29ya2luZyBjb3B5
KQpAQCAtOTM3LDYgKzkzNywxNCBAQCBzdGF0aWMgYm9vbCBjaGVja0ZvckN5Y2xlSW5Qcm90b3R5
cGVDaGFpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorc3RhdGljIHZvaWQgY2hlY2tDb25zdG5l
c3NJbkpTT2JqZWN0TmFtZXMoKQoreworICAgIEpTU3RhdGljRnVuY3Rpb24gZnVuOworICAgIGZ1
bi5uYW1lID0gInNvbWV0aGluZyI7CisgICAgSlNTdGF0aWNWYWx1ZSB2YWw7CisgICAgdmFsLm5h
bWUgPSAic29tZXRoaW5nIjsKK30KKwogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkK
IHsKICNpZiBPUyhXSU5ET1dTKQpAQCAtMTI1NCw2ICsxMjYyLDggQEAgaW50IG1haW4oaW50IGFy
Z2MsIGNoYXIqIGFyZ3ZbXSkKICAgICBhc3NlcnRFcXVhbHNBc1VURjhTdHJpbmcoanNDRkVtcHR5
U3RyaW5nLCAiIik7CiAgICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzQ0ZFbXB0eVN0cmlu
Z1dpdGhDaGFyYWN0ZXJzLCAiIik7CiAgICAgCisgICAgY2hlY2tDb25zdG5lc3NJbkpTT2JqZWN0
TmFtZXMoKTsKKyAgICAKICAgICBBU1NFUlQoSlNWYWx1ZUlzU3RyaWN0RXF1YWwoY29udGV4dCwg
anNUcnVlLCBqc1RydWUpKTsKICAgICBBU1NFUlQoIUpTVmFsdWVJc1N0cmljdEVxdWFsKGNvbnRl
eHQsIGpzT25lLCBqc09uZVN0cmluZykpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>