Simon TRENY wrote:
> On Wed, 16 Aug 2006 21:06:28 +0100,
> Essien Ita Essien <[EMAIL PROTECTED]> wrote :
>
>   
>> Kim Woelders wrote:
>>     
>>> Enlightenment CVS wrote:
>>>   
>>>       
>>>> Enlightenment CVS committal
>>>>
>>>> Author  : essiene
>>>> Project : e17
>>>> Module  : proto
>>>>
>>>> Dir     : e17/proto/entrance_edit_gui/src/widgets
>>>>
>>>>
>>>> Modified Files:
>>>>    ew_entry.c ew_entry.h 
>>>>
>>>>
>>>> Log Message:
>>>> - Fix return type warning when getting an etk_entry, it returns a
>>>> const char*, but we use normal char*'s everywhere.
>>>>
>>>> ===================================================================
>>>> RCS
>>>> file: /cvs/e/e17/proto/entrance_edit_gui/src/widgets/ew_entry.c,v
>>>> retrieving revision 1.7 retrieving revision 1.8
>>>> diff -u -3 -r1.7 -r1.8
>>>> --- ew_entry.c     16 Aug 2006 12:52:01 -0000      1.7
>>>> +++ ew_entry.c     16 Aug 2006 13:13:30 -0000      1.8
>>>> @@ -47,10 +47,10 @@
>>>>    return ew;
>>>>  }
>>>>  
>>>> -const char*
>>>> +char*
>>>>  ew_entry_get(Entrance_Entry ew)
>>>>  {
>>>> -  return etk_entry_text_get(ETK_ENTRY(ew->control));
>>>> +  return (char*) etk_entry_text_get(ETK_ENTRY(ew->control));
>>>>  }
>>>>  
>>>>     
>>>>         
>>> ...
>>>
>>> You should never (have to) cast away the const modifier. It is
>>> there for a purpose. It tells you (and the compiler) that here is a
>>> pointer to a piece of memory that you are not supposed to modify.
>>>
>>> The compiler warns you if you pass a const pointer to a function
>>> that takes non-const pointer arguments, that you may be changing
>>> something you are not supposed to change.
>>> The compiler can also use the const modifier to make certain
>>> assumptions used for optimization, e.g. that the content of an
>>> object is unchanged across calling a function which takes a const
>>> pointer to the object.
>>>
>>> If you seem to have to cast away a const pointer to avoid compiler 
>>> warnings it is most likely because something is wrong somewhere.
>>>   
>>>       
>> thnx for bringing that up.
>>
>> the full scenario is etk_entry_text_get() returns a const char*.
>>
>> ecore_config_string_set, takes a char*,
>>
>> i have to pass the value returned from etk_entry_text_get() to 
>> ecore_config_string_set(), if i use one variable, there will be
>> warnings anyhow i do it:
>>
>> /*warning by ecore_config_string_set*/
>> const char * try1 etk_entry_text_get(...);
>> ecore_config_string_set(key, try1);
>>
>> /*warning by etk_entry_text_get*/
>> char* try2 etk_entry_text_get(...);
>> ecore_config_string_set(key, try2);
>>
>> that's why i did that. anyways... what's the best way to do this? or 
>> just ignore it? its a trivial warning *i tink*
>>     
>
> etk_entry_text_get() returns a "const char *" because it returns the
> string used internally by the entry. So you should not by any means
> modify it. Now, if you need to modify it, you should probably work on a
> copy (created with strdup() or whathever).
>   
i didn't want to have to strdup and then free for something i'm just 
passing around actually.
> But, in your case, I don't think ecore_config_string_set() modifies the
> given string, so the better fix would probably be to change the API of
> ecore_config to make it use a "const char *" instead of a "char *".
>   
yup. i think that would be more elegant. but uhhh... who'll bell the cat ;)

maybe i'll just strdup for now... its not like the strdup call will kill 
the system anyways :)

Anyhoo... who *own* ecore (i.e. who do i have to bug with that 
recommendation? :) ).


> Regards
> Simon TRENY <MoOm>
>
>
>   
>>> /Kim
>>>       
>
>
> -------------------------------------------------------------------------
> Using Tomcat but need to do more? Need to support web services, security?
> Get stuff done quickly with pre-integrated technology to make your job easier
> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>   


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to