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