On Wed, Sep 21, 2016 at 8:35 PM, Carsten Haitzler <ras...@rasterman.com> wrote:
> On Tue, 20 Sep 2016 23:21:55 -0300 Gustavo Sverzut Barbieri
> <barbi...@gmail.com> said:
>
>> On Tue, Sep 20, 2016 at 8:26 PM, Bruno Dilly <bdi...@profusion.mobi> wrote:
>> > cedric pushed a commit to branch master.
>> >
>> > http://git.enlightenment.org/core/efl.git/commit/?id=a3fba57b2616f78fbdab7b43ac8e8aea7c56475b
>> >
>> > commit a3fba57b2616f78fbdab7b43ac8e8aea7c56475b
>> > Author: Bruno Dilly <bdi...@profusion.mobi>
>> > Date:   Tue Sep 20 16:13:25 2016 -0700
>> >
>> >     ecore_con,elput: fix warnings
>> >
>> >     Summary:
>> >     elput: fix warning for unused write result
>> >              ecore_con: fix warning for unused asprintf result
>> >
>> >     Reviewers: iscaro, devilhorns, cedric
>> >
>> >     Reviewed By: cedric
>> >
>> >     Subscribers: cedric, seoz, jpeg
>> >
>> >     Differential Revision: https://phab.enlightenment.org/D4308
>> >
>> >     Signed-off-by: Cedric BAIL <ced...@osg.samsung.com>
>> > ---
>> >  src/lib/ecore_con/ecore_con.c | 15 +++++++++++----
>> >  src/lib/elput/elput_logind.c  | 14 +++++++++++++-
>> >  2 files changed, 24 insertions(+), 5 deletions(-)
>> >
>> > diff --git a/src/lib/ecore_con/ecore_con.c b/src/lib/ecore_con/ecore_con.c
>> > index cc17fe8..cb66b27 100644
>> > --- a/src/lib/ecore_con/ecore_con.c
>> > +++ b/src/lib/ecore_con/ecore_con.c
>> > @@ -4487,11 +4487,18 @@ _efl_net_ip_connect_async_run(void *data,
>> > Ecore_Thread *thread EINA_UNUSED)
>> >           * parameter must be a URL with schema, otherwise it won't
>> >           * return anything.
>> >           */
>> > -        char *url;
>> > +        Eina_Stringshare *url;
>> >
>> > -        asprintf(&url, "%s://%s:%s", d->protocol == IPPROTO_UDP ? "udp" :
>> > "tcp", host, port);
>> > -        proxies = ecore_con_libproxy_proxies_get(url);
>> > -        free(url);
>> > +        url = eina_stringshare_printf("%s://%s:%s", d->protocol ==
>> > IPPROTO_UDP ? "udp" : "tcp", host, port);
>> > +        if (!url)
>> > +          {
>> > +             ERR("Could not assemble URL");
>> > +          }
>> > +        else
>> > +          {
>> > +             proxies = ecore_con_libproxy_proxies_get(url);
>> > +             eina_stringshare_del(url);
>> > +          }
>>
>> why are you using stringshare here?
>>
>>  - this is used only once, share makes no benefit.
>>
>>  - this is used from thread, not sure eina stringshare is thread safe.
>>
>> if it's complaining about asprintf() on some weirdo platform, we can
>> malloc + memcpy the pieces
>
> last i knew asnprintf is "not portable" like strdupa. alloca is about the only
> thing we can trust to work. :)

asprintf() is simple:

static inline int asprintf(...) {
    int len = snprintf("", 0, ...);
    char *buf = malloc(len + 1);
    snprintf(buf, len + 1, ...);
}

strdupa is not listed above, but also implementable as a macro:

#define strdupa(str)     ({char *__buf = alloca(strlen(str) + 1);
memcpy(__buf, str, strlen(str) + 1); buf})





-- 
Gustavo Sverzut Barbieri
--------------------------------------
Mobile: +55 (16) 99354-9890

------------------------------------------------------------------------------
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to