Enlightenment CVS committal

Author  : e-taro
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_pointer.c 


Log Message:
Free data when pointer info is popped off the stack (and a little 
simplification)

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_pointer.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -3 -r1.23 -r1.24
--- e_pointer.c 7 Jan 2006 10:39:45 -0000       1.23
+++ e_pointer.c 25 Feb 2006 06:28:50 -0000      1.24
@@ -22,6 +22,7 @@
 
 static void _e_pointer_cb_move(void *data, Evas *e __UNUSED__, Evas_Object 
*obj __UNUSED__, void *event_info);
 static void _e_pointer_free(E_Pointer *p);
+static void _e_pointer_stack_free(E_Pointer_Stack *elem);
 static int  _e_pointer_type_set(E_Pointer *p, const char *type);
 
 /* externally accessible functions */
@@ -208,18 +209,15 @@
    Evas_List *l;
    E_Pointer_Stack *stack;
 
-   for (l = p->stack; l;)
+   for (l = p->stack; l; l = l->next)
      {
-       Evas_List *l2;
-
        stack = l->data;
-       l2 = l;
-       l = l->next;
 
        if ((stack->obj == obj) &&
            ((!type) || (!strcmp(stack->type, type))))
          {
-            p->stack = evas_list_remove_list(p->stack, l2);
+            _e_pointer_stack_free(stack);
+            p->stack = evas_list_remove_list(p->stack, l);
             if (type) break;
          }
      }
@@ -315,12 +313,7 @@
 
    while (p->stack)
      {
-       E_Pointer_Stack *stack;
-
-       stack = p->stack->data;
-       if (stack->type) evas_stringshare_del(stack->type);
-       free(stack);
-
+       _e_pointer_stack_free(p->stack->data);
        p->stack = evas_list_remove_list(p->stack, p->stack);
      }
 
@@ -328,6 +321,14 @@
    free(p);
 }
 
+static void
+_e_pointer_stack_free(E_Pointer_Stack *elem)
+{
+   if (elem->type) 
+     evas_stringshare_del(elem->type);
+   free(elem);
+}
+
 static int
 _e_pointer_type_set(E_Pointer *p, const char *type)
 {




-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to