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

Reply via email to