Hi, Take a look in this version: --- a\src\iup_dlglist.c Tue Feb 13 10:05:14 2018 +++ b\src\iup_dlglist.c Tue Feb 20 09:48:43 2018 @@ -112,24 +112,14 @@ void iupDlgListDestroyAll(void) { - int i = 0, count; - Ihandle** ih_array = (Ihandle**)malloc(idlg_count * sizeof(Ihandle*)); Idiallst *list; - for (list = idlglist; list; list = list->next) - { - if (iupObjectCheck(list->ih)) - { - ih_array[i] = list->ih; - i++; - } - } + Idiallst *next; - count = i; - for (i = 0; i < count; i++) + list = idlglist; + while(list) { - if (iupObjectCheck(ih_array[i])) - IupDestroy(ih_array[i]); /* this will also destroy the list */ + next = list->next; /* Save next item, IupDestroy may can free list->next */ + IupDestroy(list->ih); /* iupObjectCheck is called in IupDestroy */ + list = next; } - - free(ih_array); }
list->next is preseved in case IupDestroy invalidate. Best regards, Ranier Vilela ________________________________________ De: Antonio Scuri <antonio.sc...@gmail.com> Enviado: segunda-feira, 19 de fevereiro de 2018 19:37 Para: IUP discussion list. Assunto: Re: [Iup-users] iupDlgListDestroyAll optimized version Yes, because when a dialog is destroyed the idlglist list is updated, so list->next will be invalid. Best, Scuri 2018-02-13 11:13 GMT-02:00 Ranier VF <ranier_...@hotmail.com<mailto:ranier_...@hotmail.com>>: Hi, Is there really any special reason, for what iupDlgListDestroyAll do not be like that? --- a\src\iup_dlglist.c Tue Feb 13 11:05:14 2018 +++ b\src\iup_dlglist.c Tue Feb 13 11:11:25 2018 @@ -112,24 +112,9 @@ void iupDlgListDestroyAll(void) { - int i = 0, count; - Ihandle** ih_array = (Ihandle**)malloc(idlg_count * sizeof(Ihandle*)); Idiallst *list; for (list = idlglist; list; list = list->next) { - if (iupObjectCheck(list->ih)) - { - ih_array[i] = list->ih; - i++; - } + IupDestroy(list->ih); /* iupObjectCheck is called in IupDestroy */ } - - count = i; - for (i = 0; i < count; i++) - { - if (iupObjectCheck(ih_array[i])) - IupDestroy(ih_array[i]); /* this will also destroy the list */ - } - - free(ih_array); } Best regards, Ranier Vilela ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Iup-users mailing list Iup-users@lists.sourceforge.net<mailto:Iup-users@lists.sourceforge.net> https://lists.sourceforge.net/lists/listinfo/iup-users ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Iup-users mailing list Iup-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/iup-users