Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_hints.c 


Log Message:


add debug/error catching

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_hints.c,v
retrieving revision 1.88
retrieving revision 1.89
diff -u -3 -r1.88 -r1.89
--- e_hints.c   6 Jul 2006 06:16:21 -0000       1.88
+++ e_hints.c   23 Aug 2006 23:24:23 -0000      1.89
@@ -290,13 +290,12 @@
             num += e_container_borders_count(c);
          }
      }
-   
-   clients = calloc(num, sizeof(Ecore_X_Window));
-   if (!clients)
-      return;
 
    if (num > 0)
      {
+       clients = calloc(num, sizeof(Ecore_X_Window));
+       if (!clients) return;
+       
        for (ml = e_manager_list(); ml; ml = ml->next)
          {
             m = ml->data;
@@ -305,15 +304,35 @@
                  c = cl->data;
                  bl = e_container_border_list_first(c);
                  while ((b = e_container_border_list_next(bl)))
-                   clients[i++] = b->win;
+                   {
+                      if (i >= num)
+                        {
+                           e_error_message_show("e_hints.c: 
e_hints_client_stacking_set()<br>"
+                                                "<br>"
+                                                "Window list size greater than 
window count.<br>"
+                                                "This is really bad.<br>"
+                                                "Please report this.");
+                           break;
+                        }
+                      clients[i++] = b->win;
+                   }
                  e_container_border_list_free(bl);
               }
          }
+       if (i < num)
+         {
+            e_error_message_show("e_hints.c: e_hints_client_stacking_set()<br>"
+                                 "<br>"
+                                 "Window list size less than window count.<br>"
+                                 "This is strange, but not harmful.<br>"
+                                 "Please report this.");
+         }
        for (ml = e_manager_list(); ml; ml = ml->next)
          {
             m = ml->data;
             ecore_x_netwm_client_list_stacking_set(m->root, clients, num);
          }
+       E_FREE(clients);
      }
    else
      {
@@ -323,7 +342,6 @@
             ecore_x_netwm_client_list_stacking_set(m->root, NULL, 0);
          }
      }
-   E_FREE(clients);
 }
 
 EAPI void



-------------------------------------------------------------------------
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