On Tue, Oct 19, 2010 at 10:26 AM, Lucas De Marchi
<[email protected]> wrote:
> On Tue, Oct 19, 2010 at 10:19 AM, Gustavo Sverzut Barbieri
> <[email protected]> wrote:
>> This seems good, but would it handle the following cases?
>>
>> 1.
>>
>> void name_set(struct my_struct *p, const char *name) {
>> eina_stringshare_replace(&p->str, name); // could be a simple
>> eina_stringshare_add() as well
>> }
>> const char *name_get(const struct my_struct *p) {
>> return p->str;
>> }
>> Eina_Bool use_it(const struct my_struct *p) {
>> return strlen(p->str) % 2; // should be eina_stringshare_strlen()
>> }
>>
>
> As I told, right now it will not handle this case. But it can be
> extended to do so.
then it will not handle most of our cases :-/ Actually if it's in the form:
const char *s = eina_stringshare_add(bla);
size_t len = eina_stringshare_strlen(s);
it's better (minimal performance gains) to write it like:
size_t len = strlen(bla); // if you know it's !NULL
const char *s = eina_stringshare_add_length(bla, len);
as internally eina_stringshare_add_length() will be called by
eina_stringshare_add(), and strlen() is often optimized by the
compiler if possible (ie: instead of bla you have "string" it turns it
into sizeof("string")-1).
>> 2.
>> Eina_Bool use_it(const char *s) {
>> return strlen(x) % 2; // should not be eina_stringshare_strlen()
>> }
>>
>> use_it(name_get(p));
>> use_it("hello");
>
> If you meant "return strlen(s) % 2", yes, this would not be changed.
typos :-D that's why we should not write programs in MS word kids! ;-)
--
Gustavo Sverzut Barbieri
http://profusion.mobi embedded systems
--------------------------------------
MSN: [email protected]
Skype: gsbarbieri
Mobile: +55 (19) 9225-2202
------------------------------------------------------------------------------
Download new Adobe(R) Flash(R) Builder(TM) 4
The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
Flex(R) Builder(TM)) enable the development of rich applications that run
across multiple browsers and platforms. Download your free trials today!
http://p.sf.net/sfu/adobe-dev2dev
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel