Hello all,

With the up-to-date elm_genlist.c, my genlist app will crash.  I ran
it with valgrind and pasted parts of the report at the end of this
email.
I reverted to r47414 and it didn't complain anymore and with r47416,
it complained.  Diff of r47414 and r47416:
Index: elm_genlist.c
===================================================================
--- elm_genlist.c       (revision 47414)
+++ elm_genlist.c       (revision 47416)
@@ -1704,9 +1704,18 @@
 _item_queue(Widget_Data *wd, Elm_Genlist_Item *it)
 {
    if (it->queued) return;
-   if (!wd->queue_idler) wd->queue_idler = ecore_idler_add(_item_idler, wd);
    it->queued = EINA_TRUE;
    wd->queue = eina_list_append(wd->queue, it);
+   while ((wd->queue) && ((!wd->blocks) || (!wd->blocks->next)))
+     {
+        if (wd->queue_idler)
+          {
+             ecore_idler_del(wd->queue_idler);
+             wd->queue_idler = NULL;
+          }
+        _item_idler(wd);
+     }
+   if (!wd->queue_idler) wd->queue_idler = ecore_idler_add(_item_idler, wd);
 }


==24485== Invalid read of size 1
==24485==    at 0x408401C: evas_object_smart_callback_call
(evas_object_smart.c:509)
==24485==    by 0x41D4CEB: _signal_clicked (elm_button.c:149)
==24485==    by 0x471082E: edje_match_callback_exec_check_finals
(edje_match.c:400)
==24485==    by 0x4710C3D: edje_match_callback_exec (edje_match.c:536)
==24485==    by 0x46FE380: _edje_emit_cb (edje_program.c:1280)
==24485==    by 0x46FE268: _edje_emit_handle (edje_program.c:1243)
==24485==    by 0x470DE00: _edje_message_process (edje_message_queue.c:612)
==24485==    by 0x470E101: _edje_message_queue_process
(edje_message_queue.c:692)
==24485==    by 0x470D2BB: _edje_job (edje_message_queue.c:172)
==24485==    by 0x41526D3: _ecore_job_event_handler (ecore_job.c:102)
==24485==    by 0x414E03F: _ecore_event_call (ecore_events.c:550)
==24485==    by 0x41538DC: _ecore_main_loop_iterate_internal (ecore_main.c:880)
==24485==  Address 0x5d229cb is 219 bytes inside a block of size 220 free'd
==24485==    at 0x4024836: free (vg_replace_malloc.c:325)
==24485==    by 0x4079CDC: evas_object_free (evas_object_main.c:79)
==24485==    by 0x40A935C: evas_render_updates_internal (evas_render.c:1129)
==24485==    by 0x40A9689: evas_norender (evas_render.c:1248)
==24485==    by 0x41EB48E: _item_block_recalc (elm_genlist.c:1013)
==24485==    by 0x41ECF24: _item_idler (elm_genlist.c:1685)
==24485==    by 0x41ED072: _item_queue (elm_genlist.c:1720)
==24485==    by 0x41ED24F: elm_genlist_item_append (elm_genlist.c:1773)
==24485==    by 0x6D454E7: musicBrowser_populate (musicBrowser.c:608)
==24485==    by 0x6D446CE: _browser_item_play_clicked (musicBrowser.c:132)
==24485==    by 0x4084018: evas_object_smart_callback_call
(evas_object_smart.c:507)
==24485==    by 0x41D4CEB: _signal_clicked (elm_button.c:149)
==24485==
==24485== Invalid read of size 4
==24485==    at 0x408405A: evas_object_smart_callback_call
(evas_object_smart.c:513)
==24485==    by 0x41D4CEB: _signal_clicked (elm_button.c:149)
==24485==    by 0x471082E: edje_match_callback_exec_check_finals
(edje_match.c:400)
==24485==    by 0x4710C3D: edje_match_callback_exec (edje_match.c:536)
==24485==    by 0x46FE380: _edje_emit_cb (edje_program.c:1280)
==24485==    by 0x46FE268: _edje_emit_handle (edje_program.c:1243)
==24485==    by 0x470DE00: _edje_message_process (edje_message_queue.c:612)
==24485==    by 0x470E101: _edje_message_queue_process
(edje_message_queue.c:692)
==24485==    by 0x470D2BB: _edje_job (edje_message_queue.c:172)
==24485==    by 0x41526D3: _ecore_job_event_handler (ecore_job.c:102)
==24485==    by 0x414E03F: _ecore_event_call (ecore_events.c:550)
==24485==    by 0x41538DC: _ecore_main_loop_iterate_internal (ecore_main.c:880)
==24485==  Address 0x5d2e49c is 28 bytes inside a block of size 36 free'd
==24485==    at 0x4024836: free (vg_replace_malloc.c:325)
==24485==    by 0x4084F68: evas_object_smart_free (evas_object_smart.c:1029)
==24485==    by 0x4079C09: evas_object_free (evas_object_main.c:62)
==24485==    by 0x40A935C: evas_render_updates_internal (evas_render.c:1129)
==24485==    by 0x40A9689: evas_norender (evas_render.c:1248)
==24485==    by 0x41EB48E: _item_block_recalc (elm_genlist.c:1013)
==24485==    by 0x41ECF24: _item_idler (elm_genlist.c:1685)
==24485==    by 0x41ED072: _item_queue (elm_genlist.c:1720)
==24485==    by 0x41ED24F: elm_genlist_item_append (elm_genlist.c:1773)
==24485==    by 0x6D454E7: musicBrowser_populate (musicBrowser.c:608)
==24485==    by 0x6D446CE: _browser_item_play_clicked (musicBrowser.c:132)
==24485==    by 0x4084018: evas_object_smart_callback_call
(evas_object_smart.c:507)
==24485==
==24485== Invalid write of size 4
==24485==    at 0x4084063: evas_object_smart_callback_call
(evas_object_smart.c:513)
==24485==    by 0x41D4CEB: _signal_clicked (elm_button.c:149)
==24485==    by 0x471082E: edje_match_callback_exec_check_finals
(edje_match.c:400)
==24485==    by 0x4710C3D: edje_match_callback_exec (edje_match.c:536)
==24485==    by 0x46FE380: _edje_emit_cb (edje_program.c:1280)
==24485==    by 0x46FE268: _edje_emit_handle (edje_program.c:1243)
==24485==    by 0x470DE00: _edje_message_process (edje_message_queue.c:612)
==24485==    by 0x470E101: _edje_message_queue_process
(edje_message_queue.c:692)
==24485==    by 0x470D2BB: _edje_job (edje_message_queue.c:172)
==24485==    by 0x41526D3: _ecore_job_event_handler (ecore_job.c:102)
==24485==    by 0x414E03F: _ecore_event_call (ecore_events.c:550)
==24485==    by 0x41538DC: _ecore_main_loop_iterate_internal (ecore_main.c:880)
==24485==  Address 0x5d2e49c is 28 bytes inside a block of size 36 free'd
==24485==    at 0x4024836: free (vg_replace_malloc.c:325)
==24485==    by 0x4084F68: evas_object_smart_free (evas_object_smart.c:1029)
==24485==    by 0x4079C09: evas_object_free (evas_object_main.c:62)
==24485==    by 0x40A935C: evas_render_updates_internal (evas_render.c:1129)
==24485==    by 0x40A9689: evas_norender (evas_render.c:1248)
==24485==    by 0x41EB48E: _item_block_recalc (elm_genlist.c:1013)
==24485==    by 0x41ECF24: _item_idler (elm_genlist.c:1685)
==24485==    by 0x41ED072: _item_queue (elm_genlist.c:1720)
==24485==    by 0x41ED24F: elm_genlist_item_append (elm_genlist.c:1773)
==24485==    by 0x6D454E7: musicBrowser_populate (musicBrowser.c:608)
==24485==    by 0x6D446CE: _browser_item_play_clicked (musicBrowser.c:132)
==24485==    by 0x4084018: evas_object_smart_callback_call
(evas_object_smart.c:507)
==24485==
==24485== Invalid read of size 4
==24485==    at 0x40849EC: evas_object_smart_callbacks_clear
(evas_object_smart.c:866)
==24485==    by 0x4084070: evas_object_smart_callback_call
(evas_object_smart.c:514)
==24485==    by 0x41D4CEB: _signal_clicked (elm_button.c:149)
==24485==    by 0x471082E: edje_match_callback_exec_check_finals
(edje_match.c:400)
==24485==    by 0x4710C3D: edje_match_callback_exec (edje_match.c:536)
==24485==    by 0x46FE380: _edje_emit_cb (edje_program.c:1280)
==24485==    by 0x46FE268: _edje_emit_handle (edje_program.c:1243)
==24485==    by 0x470DE00: _edje_message_process (edje_message_queue.c:612)
==24485==    by 0x470E101: _edje_message_queue_process
(edje_message_queue.c:692)
==24485==    by 0x470D2BB: _edje_job (edje_message_queue.c:172)
==24485==    by 0x41526D3: _ecore_job_event_handler (ecore_job.c:102)
==24485==    by 0x414E03F: _ecore_event_call (ecore_events.c:550)
==24485==  Address 0x5d229a8 is 184 bytes inside a block of size 220 free'd
==24485==    at 0x4024836: free (vg_replace_malloc.c:325)
==24485==    by 0x4079CDC: evas_object_free (evas_object_main.c:79)
==24485==    by 0x40A935C: evas_render_updates_internal (evas_render.c:1129)
==24485==    by 0x40A9689: evas_norender (evas_render.c:1248)
==24485==    by 0x41EB48E: _item_block_recalc (elm_genlist.c:1013)
==24485==    by 0x41ECF24: _item_idler (elm_genlist.c:1685)
==24485==    by 0x41ED072: _item_queue (elm_genlist.c:1720)
==24485==    by 0x41ED24F: elm_genlist_item_append (elm_genlist.c:1773)
==24485==    by 0x6D454E7: musicBrowser_populate (musicBrowser.c:608)
==24485==    by 0x6D446CE: _browser_item_play_clicked (musicBrowser.c:132)
==24485==    by 0x4084018: evas_object_smart_callback_call
(evas_object_smart.c:507)
==24485==    by 0x41D4CEB: _signal_clicked (elm_button.c:149)
==24485==
==24485== Invalid read of size 4
==24485==    at 0x40849F8: evas_object_smart_callbacks_clear
(evas_object_smart.c:868)
==24485==    by 0x4084070: evas_object_smart_callback_call
(evas_object_smart.c:514)
==24485==    by 0x41D4CEB: _signal_clicked (elm_button.c:149)
==24485==    by 0x471082E: edje_match_callback_exec_check_finals
(edje_match.c:400)
==24485==    by 0x4710C3D: edje_match_callback_exec (edje_match.c:536)
==24485==    by 0x46FE380: _edje_emit_cb (edje_program.c:1280)
==24485==    by 0x46FE268: _edje_emit_handle (edje_program.c:1243)
==24485==    by 0x470DE00: _edje_message_process (edje_message_queue.c:612)
==24485==    by 0x470E101: _edje_message_queue_process
(edje_message_queue.c:692)
==24485==    by 0x470D2BB: _edje_job (edje_message_queue.c:172)
==24485==    by 0x41526D3: _ecore_job_event_handler (ecore_job.c:102)
==24485==    by 0x414E03F: _ecore_event_call (ecore_events.c:550)
==24485==  Address 0x5d2e49c is 28 bytes inside a block of size 36 free'd
==24485==    at 0x4024836: free (vg_replace_malloc.c:325)
==24485==    by 0x4084F68: evas_object_smart_free (evas_object_smart.c:1029)
==24485==    by 0x4079C09: evas_object_free (evas_object_main.c:62)
==24485==    by 0x40A935C: evas_render_updates_internal (evas_render.c:1129)
==24485==    by 0x40A9689: evas_norender (evas_render.c:1248)
==24485==    by 0x41EB48E: _item_block_recalc (elm_genlist.c:1013)
==24485==    by 0x41ECF24: _item_idler (elm_genlist.c:1685)
==24485==    by 0x41ED072: _item_queue (elm_genlist.c:1720)
==24485==    by 0x41ED24F: elm_genlist_item_append (elm_genlist.c:1773)
==24485==    by 0x6D454E7: musicBrowser_populate (musicBrowser.c:608)
==24485==    by 0x6D446CE: _browser_item_play_clicked (musicBrowser.c:132)
==24485==    by 0x4084018: evas_object_smart_callback_call
(evas_object_smart.c:507)


-- 
brian
------------------

Cool-Karaoke - The smallest recording studio, in your palm, open-sourced
http://cool-idea.com.tw/

iMaGiNaTiOn iS mOrE iMpOrTaNt tHaN kNoWlEdGe

------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to