Hello
Thanks for answer.

        > Did you mean Last list element: 0x832c610 is differ from INIT list
> prt: 0x830f080?
 No.

Lest's see...
i got function "do_work" with:
        1. new Glist init with random data
        2. callback definition of button click: button_click(...., GList *list)
let init list poiner = 0xfe
button was clicked!
Here button_click(GList *list)
        list in agrs = 0xfe
        new data record memory allocation.
        !!! g_list_append(data, list) !!!
        In my example it returns init list value (0xfe), but should returns 
value 
of newly created list (0x832c610 in example).

        In example:
                INIT list prt: 0x830f080 - this is init list, which passed to 
button_callback
                In button callback:
                Created: 0x830f080, arg: 0x830f080 - first ptr is returned list 
from 
g_list_append(), but it equal to init list. WTF??? HOW?? I need newly created 
list here...
                And i check added value with g_list_last(). It's equal 
0x832c610 and 
correct.

So, why g_list_append() dont' return me newly created list???

В сообщении от Среда 15 августа 2012 09:33:04 вы написали:
> Hi,
> 
> > In button_cb()...
> 
> Did you mean Last list element: 0x832c610 is differ from INIT list
> prt: 0x830f080?
> 
> It's clear because  0x830f080 was the location of first list and
> 0x832c610 is the last appended list.
> g_list_prepend() return to the start of the list, g_list_last() return
> the last of the list (address).
> 
> > in test_glist()
> 
> First you call temp = g_list_insert(test, ...), test = NULL, save the
> list to temp pointer to GList,
> second, you call temp = g_list_append(test, ...), nothing wrong with
> that code! BUT if you suppose to insert 2nd list here, then you are
> wrong. Because, test is STILL NULL. It returns the newly allocated
> list again, that's why it's differ. You should call call temp =
> g_list_append(temp,...) or to insert the next list.
> 
> > In real program, i need to get newly created list pointer in function
> > like button_cb(), but don't know how to do it.
> 
> Just pass it through callback's argument or declare it as global variable.
> 
> On Wed, Aug 15, 2012 at 8:04 AM, Vlasov Vitaly <vnig...@gmail.com> wrote:
> > Hi, list.
> > 
> >         I can't understand, why g_list_append return different values in
> >         my
> > 
> > callback's(please read source). In first case i got same list, which was
> > obtained from arguments. In second case g_list_append returns newly
> > created list.
> > Why result's is are not the same?
> > 
> > In real program, i need to get newly created list pointer in function
> > like button_cb(), but don't know how to do it.
> > 
> > source: http://pastebin.com/4gMREKwd
> > 
> > output on my laptop:
> > INIT list prt: 0x830f080
> > Created: 0x830f080, arg: 0x830f080
> > Last list element: 0x832c610
> > Init list ptr: 0x832c5c0
> > Second list ptr: 0x830f120
> > End
> > _______________________________________________
> > gtk-app-devel-list mailing list
> > gtk-app-devel-list@gnome.org
> > https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to