Hi

I am using genlist, I have a "double_label" genlist in my Application:


e_music_playlist_append(Evas_Object *playlist_show, TrackProperties
> *properties, int list_id)

{

        Listitem *listitem;


>         itclass.item_style     = "double_label";

        itclass.func.label_get = _gl_label_get;

        itclass.func.icon_get  = _gl_icon_get;

        itclass.func.state_get = _gl_state_get;

        itclass.func.del       = _gl_del;


>
>         listitem = E_MUSIC_NEW(Listitem, 1);

        listitem->pro = properties;

        listitem->item = elm_genlist_item_append(playlist_show, &itclass,

                listitem, NULL/* parent */, ELM_GENLIST_ITEM_NONE,
> _list_sel, (int *)list_id/* func data */ );


> /* it will do _gl_label_get two times, but wen we do _gl_label_get in the
> second time ,listitem may has been free! */

//      free( listitem );

}


so, I expected to got two times of call of  _gl_label_get:

char *

_gl_label_get(const void *data, Evas_Object *obj, const char *part)

{

        const Listitem *tit = data;

        char buf[PATH_MAX];

        printf("BUF:%s\n", tit->pro->title);

        if (!strcmp(part, "elm.text"))

        {

                snprintf(buf, sizeof(buf), "%s", tit->pro->title);


>         }

        else if (!strcmp(part, "elm.text.sub"))

        {

                snprintf(buf, sizeof(buf), "%s", tit->pro->artist);

        }

        return strdup(buf);

}


BUT, i have got four!

Breakpoint 1, _gl_label_get (data=0x824e9d0, obj=0x80bf588, part=0x82523c8
> "elm.text") at e_music_playlist.c:23

23       if (!strcmp(part, "elm.text"))

(gdb) bt

#0  _gl_label_get (data=0x824e9d0, obj=0x80bf588, part=0x82523c8 "elm.text")
> at e_music_playlist.c:23

#1  0x001893fb in _item_realize (it=0x824e9e0, in=<value optimized out>,
> calc=1) at elm_genlist.c:881

#2  0x00189bb1 in _item_block_recalc (itb=<value optimized out>, in=<value
> optimized out>, qadd=1, norender=0) at elm_genlist.c:1001

#3  0x0018a2a6 in _queue_proecess (wd=<value optimized out>, norender=<value
> optimized out>) at elm_genlist.c:1708

#4  0x0018a494 in _item_queue (wd=0x80b4188, it=<value optimized out>) at
> elm_genlist.c:1751

#5  0x0018a7d6 in elm_genlist_item_append (obj=0x80bf588, itc=0x805022c,
> data=0x824e9d0, parent=0x0, flags=ELM_GENLIST_ITEM_NONE,

    func=0x804d640 <_list_sel>, func_data=0x0) at elm_genlist.c:1804

#6  0x0804d62b in e_music_playlist_append (playlist_show=0x80bf588,
> properties=0xbffff6e0, list_id=0) at e_music_playlist.c:90

#7  0x0804d23c in _update_track (value=0x80ffb50, user_data=0x0) at
> xmms2_callback.c:137

#8  0x0013cdc7 in xmmsc_result_run (res=0x813c9c0, msg=0x811c698) at
> ../src/clients/lib/xmmsclient/result.c:437

#9  0x00138788 in xmmsc_ipc_exec_msg (ipc=0x8052a20, msg=0x811c698) at
> ../src/clients/lib/xmmsclient/ipc.c:399

#10 0x00137b77 in xmmsc_ipc_io_in_callback (ipc=0x8052a20) at
> ../src/clients/lib/xmmsclient/ipc.c:80

#11 0x0013df47 in xmmsc_io_in_handle (c=0x8051080) at
> ../src/clients/lib/xmmsclient/xmmsclient.c:511

#12 0x0014f834 in on_fd_data (udata=0x8051080, handler=0x8052ab8) at
> ../src/clients/lib/xmmsclient-ecore/xmmsclient-ecore.c:35

#13 0x005834ad in _ecore_main_fd_handlers_call (once_only=0) at
> ecore_main.c:699

#14 _ecore_main_loop_iterate_internal (once_only=0) at ecore_main.c:884

#15 0x00583667 in ecore_main_loop_begin () at ecore_main.c:166

#16 0x00167917 in elm_run () at elm_main.c:1260

#17 0x0804a9a7 in elm_main (argc=1, argv=0xbffff984) at e_music.c:42

#18 0x0804aa8e in main (argc=1, argv=0xbffff984) at e_music.c:67

(gdb) continue

Continuing.

BUF:Lament for Lost Dreams (snippet)


> Breakpoint 1, _gl_label_get (data=0x824e9d0, obj=0x80bf588, part=0x8252400
> "elm.text.sub") at e_music_playlist.c:23

23       if (!strcmp(part, "elm.text"))

(gdb) bt

#0  _gl_label_get (data=0x824e9d0, obj=0x80bf588, part=0x8252400
> "elm.text.sub") at e_music_playlist.c:23

#1  0x001893fb in _item_realize (it=0x824e9e0, in=<value optimized out>,
> calc=1) at elm_genlist.c:881

#2  0x00189bb1 in _item_block_recalc (itb=<value optimized out>, in=<value
> optimized out>, qadd=1, norender=0) at elm_genlist.c:1001

#3  0x0018a2a6 in _queue_proecess (wd=<value optimized out>, norender=<value
> optimized out>) at elm_genlist.c:1708

#4  0x0018a494 in _item_queue (wd=0x80b4188, it=<value optimized out>) at
> elm_genlist.c:1751

#5  0x0018a7d6 in elm_genlist_item_append (obj=0x80bf588, itc=0x805022c,
> data=0x824e9d0, parent=0x0, flags=ELM_GENLIST_ITEM_NONE,

    func=0x804d640 <_list_sel>, func_data=0x0) at elm_genlist.c:1804

#6  0x0804d62b in e_music_playlist_append (playlist_show=0x80bf588,
> properties=0xbffff6e0, list_id=0) at e_music_playlist.c:90

#7  0x0804d23c in _update_track (value=0x80ffb50, user_data=0x0) at
> xmms2_callback.c:137

#8  0x0013cdc7 in xmmsc_result_run (res=0x813c9c0, msg=0x811c698) at
> ../src/clients/lib/xmmsclient/result.c:437

#9  0x00138788 in xmmsc_ipc_exec_msg (ipc=0x8052a20, msg=0x811c698) at
> ../src/clients/lib/xmmsclient/ipc.c:399

#10 0x00137b77 in xmmsc_ipc_io_in_callback (ipc=0x8052a20) at
> ../src/clients/lib/xmmsclient/ipc.c:80

#11 0x0013df47 in xmmsc_io_in_handle (c=0x8051080) at
> ../src/clients/lib/xmmsclient/xmmsclient.c:511

#12 0x0014f834 in on_fd_data (udata=0x8051080, handler=0x8052ab8) at
> ../src/clients/lib/xmmsclient-ecore/xmmsclient-ecore.c:35

#13 0x005834ad in _ecore_main_fd_handlers_call (once_only=0) at
> ecore_main.c:699

#14 _ecore_main_loop_iterate_internal (once_only=0) at ecore_main.c:884

#15 0x00583667 in ecore_main_loop_begin () at ecore_main.c:166

#16 0x00167917 in elm_run () at elm_main.c:1260

#17 0x0804a9a7 in elm_main (argc=1, argv=0xbffff984) at e_music.c:42

#18 0x0804aa8e in main (argc=1, argv=0xbffff984) at e_music.c:67

(gdb) continue

Continuing.

BUF:Lament for Lost Dreams (snippet)


> Breakpoint 1, _gl_label_get (data=0x824e9d0, obj=0x80bf588, part=0x824efe8
> "elm.text") at e_music_playlist.c:23

23       if (!strcmp(part, "elm.text"))

(gdb) bt

#0  _gl_label_get (data=0x824e9d0, obj=0x80bf588, part=0x824efe8 "elm.text")
> at e_music_playlist.c:23

#1  0x001893fb in _item_realize (it=0x824e9e0, in=<value optimized out>,
> calc=0) at elm_genlist.c:881

#2  0x0018aba5 in _item_block_position (itb=<value optimized out>, in=<value
> optimized out>) at elm_genlist.c:1111

#3  0x0018acea in _pan_calculate (obj=0x80cf6a0) at elm_genlist.c:1396

#4  0x003744ac in evas_call_smarts_calculate (e=0x80928d0) at
> evas_object_smart.c:833

#5  0x0039347b in evas_render_updates_internal (e=0x80928d0,
> make_updates=208 '\320', do_draw=1 '\001') at evas_render.c:801

#6  0x005c8cd9 in _ecore_evas_x_render (ee=0x8093578) at ecore_evas_x.c:349

#7  0x005bf3ee in _ecore_evas_idle_enter (data=0x0) at ecore_evas.c:48

#8  0x00581e45 in _ecore_idle_enterer_call () at ecore_idle_enterer.c:132

#9  0x005832dd in _ecore_main_loop_iterate_internal (once_only=0) at
> ecore_main.c:766

#10 0x00583667 in ecore_main_loop_begin () at ecore_main.c:166

#11 0x00167917 in elm_run () at elm_main.c:1260

#12 0x0804a9a7 in elm_main (argc=1, argv=0xbffff984) at e_music.c:42

#13 0x0804aa8e in main (argc=1, argv=0xbffff984) at e_music.c:67

(gdb) continue

Continuing.

BUF:��


>
> Breakpoint 1, _gl_label_get (data=0x824e9d0, obj=0x80bf588, part=0x825aec0
> "elm.text.sub") at e_music_playlist.c:23

23       if (!strcmp(part, "elm.text"))

(gdb) bt

#0  _gl_label_get (data=0x824e9d0, obj=0x80bf588, part=0x825aec0
> "elm.text.sub") at e_music_playlist.c:23

#1  0x001893fb in _item_realize (it=0x824e9e0, in=<value optimized out>,
> calc=0) at elm_genlist.c:881

#2  0x0018aba5 in _item_block_position (itb=<value optimized out>, in=<value
> optimized out>) at elm_genlist.c:1111

#3  0x0018acea in _pan_calculate (obj=0x80cf6a0) at elm_genlist.c:1396

#4  0x003744ac in evas_call_smarts_calculate (e=0x80928d0) at
> evas_object_smart.c:833

#5  0x0039347b in evas_render_updates_internal (e=0x80928d0,
> make_updates=208 '\320', do_draw=1 '\001') at evas_render.c:801

#6  0x005c8cd9 in _ecore_evas_x_render (ee=0x8093578) at ecore_evas_x.c:349

#7  0x005bf3ee in _ecore_evas_idle_enter (data=0x0) at ecore_evas.c:48

#8  0x00581e45 in _ecore_idle_enterer_call () at ecore_idle_enterer.c:132

#9  0x005832dd in _ecore_main_loop_iterate_internal (once_only=0) at
> ecore_main.c:766

#10 0x00583667 in ecore_main_loop_begin () at ecore_main.c:166

#11 0x00167917 in elm_run () at elm_main.c:1260

#12 0x0804a9a7 in elm_main (argc=1, argv=0xbffff984) at e_music.c:42

#13 0x0804aa8e in main (argc=1, argv=0xbffff984) at e_music.c:67

(gdb) continue

Continuing.

BUF:��


SO, is it normal to get this?  How can I fix the err? I don't want to store
 all the listitem items in the memory statically.

Help me. thanks.
------------------------------------------------------------------------------
Download Intel&#174; 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