Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto
Dir : e17/proto/enhance/src/lib Modified Files: Enhance.h enhance.c Log Message: nerochiaro making his patch better =================================================================== RCS file: /cvs/e/e17/proto/enhance/src/lib/Enhance.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- Enhance.h 8 Aug 2006 19:02:41 -0000 1.3 +++ Enhance.h 14 Aug 2006 09:11:31 -0000 1.4 @@ -117,13 +117,13 @@ /* Gets the next signal name + handler name for a certain part in the GUI. Returns NULL if there are no more. */ Enhance_Signals_Enumerator enhance_signals_next(Enhance *en, Enhance_Signals_Enumerator current, char **signal, char **handler); -/* Starts the enumeration of all GUI parts. You should always call enhance_widgets_end to close it. */ +/* Starts the enumeration of all GUI parts. */ Enhance_Widgets_Enumerator enhance_widgets_start(Enhance *en); /* Gets the next GUI part. Return NULL if there are no more GUI parts. */ const char* enhance_widgets_next(Enhance *en, Enhance_Widgets_Enumerator* enumeration); -/* Ends an enumeration of all GUI parts. */ +/* Ends an enumeration of all GUI parts. You don't need to call this if widgets_next returns NULL. But calling it anyway is legal. */ void enhance_widgets_end(Enhance *en, Enhance_Widgets_Enumerator* enumeration); #ifdef __cplusplus =================================================================== RCS file: /cvs/e/e17/proto/enhance/src/lib/enhance.c,v retrieving revision 1.18 retrieving revision 1.19 diff -u -3 -r1.18 -r1.19 --- enhance.c 8 Aug 2006 21:45:42 -0000 1.18 +++ enhance.c 14 Aug 2006 09:11:31 -0000 1.19 @@ -1129,26 +1129,30 @@ const char* enhance_widgets_next(Enhance *en, Enhance_Widgets_Enumerator* enumerator) { - Evas_List *list; + Evas_List *list,*prev; char* data; if (enumerator == NULL) return NULL; - list = *enumerator; + if (list == NULL) return NULL; + data = evas_list_data(list); - *enumerator = evas_list_prev(list); + prev = evas_list_prev(list); + if (prev == NULL) enhance_widgets_end(en, enumerator); + + *enumerator = prev; return data; } void enhance_widgets_end(Enhance *en, Enhance_Widgets_Enumerator* enumerator) { - Evas_List *l; + Evas_List *list; - l = *enumerator; - for (; l; l = evas_list_next(l)) E_FREE(l->data); - evas_list_free(l); - + if (enumerator == NULL) return; + + list = *enumerator; + if (list != NULL) evas_list_free(list); *enumerator = NULL; } @@ -1184,11 +1188,13 @@ _e_signal_hash_free(Evas_Hash *hash, const char *key, void *data, void *fdata) { Evas_List *signals; - Evas_List *l; + void *item; signals = data; - for(l = signals; l; l = l->next) - E_FREE(l->data); + for(; signals; signals = evas_list_next(signals)) { + item = evas_list_data(signals); + E_FREE(item); + } evas_list_free(signals); return 1; ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs