On Fri, 3 Jun 2011 00:33:37 -0300 Rafael Antognolli <[email protected]> said:
well color me pretty. i forgot about this email... found it.. and fixed in svn now :) > On Thu, Jun 2, 2011 at 4:09 AM, Cedric BAIL <[email protected]> wrote: > > On Wed, Jun 1, 2011 at 9:27 PM, Rafael Antognolli > > <[email protected]> wrote: > >> On Thu, Sep 9, 2010 at 4:08 AM, Enlightenment SVN > >> <[email protected]> wrote: > >>> Log: > >>> lots of cleanups... actually tested! :) > >>> > >>> > >>> Author: raster > >>> Date: 2010-09-09 00:08:10 -0700 (Thu, 09 Sep 2010) > >>> New Revision: 52030 > >> > >>> static void > >>> -_evas_preload_thread_end(Evas_Preload_Pthread_Data *pth) > >>> +_evas_preload_thread_end(void *data) > >>> { > >>> - Evas_Preload_Pthread_Data *p; > >>> + Evas_Preload_Pthread_Data *pth = data; > >>> + Evas_Preload_Pthread_Data *p = NULL; > >>> > >>> - if (pthread_join(pth->thread, (void **) &p) != 0) > >>> - return ; > >>> - > >>> - _evas_preload_thread = eina_list_remove(_evas_preload_thread, pth); > >>> + if (pthread_join(pth->thread, (void **)&p) != 0) free(p); > >>> } > >> > >> Hello raster, I know this is old, but I can't understand it... why do > >> you only free the data struct on pthread_join error? Shouldn't you > >> free it always? > >> > >> I can always get leaks on almost every call that I'm doing to > >> edje_object_preload() on my program. I can send you a test case if > >> necessary... > > > > Test case ! Test case ! Send it ! Send it ! > > Test case attached. It leaks for every thread started for preload. > Just give images as arguments in the command line. It should leak > something like this: > > ==10047== 64 bytes in 8 blocks are definitely lost in loss record 44 of 78 > ==10047== at 0x4C267CE: malloc (in > /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) > ==10047== by 0x5302327: evas_preload_thread_run (evas_preload.c:197) > ==10047== by 0x52FE624: _evas_cache_image_entry_preload_add > (evas_cache_image.c:475) > ==10047== by 0x5300199: evas_cache_image_preload_data > (evas_cache_image.c:1270) > ==10047== by 0xAE06CB6: ??? > ==10047== by 0x52AEF16: evas_object_image_preload > (evas_object_image.c:1013) ==10047== by 0x400EAF: _image_preloaded_cb > (test-evas-preload.c:29) ==10047== by 0x52A06E6: > evas_object_event_callback_call (evas_callbacks.c:222) > ==10047== by 0x52BC270: evas_object_inform_call_image_preloaded > (evas_object_inform.c:68) > ==10047== by 0x52FE3EA: _evas_cache_image_async_end > (evas_cache_image.c:419) ==10047== by 0x5301FC1: _evas_preload_thread_done > (evas_preload.c:70) ==10047== by 0x52F72D1: evas_async_events_process > (evas_async_events.c:90) > > > -- > Rafael Antognolli > ProFUSION embedded systems > http://profusion.mobi -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- The Rasterman (Carsten Haitzler) [email protected] ------------------------------------------------------------------------------ EditLive Enterprise is the world's most technically advanced content authoring tool. Experience the power of Track Changes, Inline Image Editing and ensure content is compliant with Accessibility Checking. http://p.sf.net/sfu/ephox-dev2dev _______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
