|
From: Enlightenment C. <no...@cv...> - 2006-09-27 21:45:49
|
Enlightenment CVS committal
Author : essiene
Project : e17
Module : proto
Dir : e17/proto/entrance_edit_gui/src/widgets
Modified Files:
_ew_list.c _ew_list.h ew_edjelist.c ew_edjelist.h
ew_textlist.c ew_textlist.h
Log Message:
- Started work on proper object managing overall. I've had some object corruption issues that seems to be caused by lost pointers. Time to byte this bullet.
- Theme and Background dialog now will only ever create one instance, no matter how many times you try to launch it.
- Prompted by entrance bloat issues, cleaned up some very silly memory usages. Its amazing the what you gain just by watching top while clicking away at your app. Awesome stuff.
===================================================================
RCS file: /cvs/e/e17/proto/entrance_edit_gui/src/widgets/_ew_list.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -3 -r1.11 -r1.12
--- _ew_list.c 25 Sep 2006 19:08:56 -0000 1.11
+++ _ew_list.c 27 Sep 2006 21:45:47 -0000 1.12
@@ -69,6 +69,7 @@
if(ewld)
{
ewld->func = NULL;
+ ewld->funcdata = NULL;
ewld->data = calloc(255, sizeof(char));
}
@@ -100,9 +101,8 @@
{
Entrance_List_Data ewld = etk_tree_row_data_get(row);
- /*TODO: call ewld->func and pass it ewld->data? */
if(ewld->func)
- ewld->func();
+ ewld->func(ewld->funcdata);
}
===================================================================
RCS file: /cvs/e/e17/proto/entrance_edit_gui/src/widgets/_ew_list.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- _ew_list.h 25 Sep 2006 19:08:56 -0000 1.5
+++ _ew_list.h 27 Sep 2006 21:45:47 -0000 1.6
@@ -2,8 +2,9 @@
#define _EW_LIST_H
typedef struct _Entrance_List_Data {
- void (*func)(void);
+ void (*func)(void*);
void *data;
+ void *funcdata;
} *Entrance_List_Data;
@@ -42,6 +43,10 @@
if(ewld->data) \
{ \
free(ewld->data); \
+ } \
+ if(ewld->funcdata) \
+ { \
+ free(ewld->funcdata); \
} \
free(ewld); \
} \
===================================================================
RCS file: /cvs/e/e17/proto/entrance_edit_gui/src/widgets/ew_edjelist.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- ew_edjelist.c 25 Sep 2006 19:08:56 -0000 1.6
+++ ew_edjelist.c 27 Sep 2006 21:45:47 -0000 1.7
@@ -19,7 +19,7 @@
}
void
-ew_edjelist_add(Entrance_List ew, const char *label, const char *edje, const char *group, void *data, size_t size, void (*func) (void))
+ew_edjelist_add(Entrance_List ew, const char *label, const char *edje, const char *group, void *data, size_t size, void (*func) (void*), void* funcdata)
{
Etk_Tree_Row *row;
etk_tree_freeze(ETK_TREE(ew->owner));
@@ -34,6 +34,7 @@
{
memcpy(ewld->data, data, size);
}
+ ewld->funcdata = funcdata;
}
etk_tree_row_data_set(row, ewld);
===================================================================
RCS file: /cvs/e/e17/proto/entrance_edit_gui/src/widgets/ew_edjelist.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- ew_edjelist.h 25 Sep 2006 19:08:56 -0000 1.3
+++ ew_edjelist.h 27 Sep 2006 21:45:47 -0000 1.4
@@ -4,7 +4,7 @@
#include "_ew_list.h"
Entrance_List ew_edjelist_new(const char*, int, int, int, int);
-void ew_edjelist_add(Entrance_List, const char *, const char *, const char*, void *, size_t, void (*) (void));
+void ew_edjelist_add(Entrance_List, const char *, const char *, const char*, void *, size_t, void (*) (void*), void*);
#endif
===================================================================
RCS file: /cvs/e/e17/proto/entrance_edit_gui/src/widgets/ew_textlist.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- ew_textlist.c 25 Sep 2006 19:08:56 -0000 1.6
+++ ew_textlist.c 27 Sep 2006 21:45:47 -0000 1.7
@@ -20,7 +20,7 @@
void
ew_textlist_add(Entrance_List ew, const char *label, void *data, size_t size,
- void (*func) (void))
+ void (*func) (void*), void* funcdata)
{
Etk_Tree_Row *row;
@@ -39,6 +39,7 @@
int c = strlen(s);
memcpy(ewld->data, data, size);
}
+ ewld->funcdata = funcdata;
}
etk_tree_row_data_set(row, ewld);
===================================================================
RCS file: /cvs/e/e17/proto/entrance_edit_gui/src/widgets/ew_textlist.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- ew_textlist.h 25 Sep 2006 19:08:56 -0000 1.3
+++ ew_textlist.h 27 Sep 2006 21:45:47 -0000 1.4
@@ -4,7 +4,7 @@
#include "_ew_list.h"
Entrance_List ew_textlist_new(const char*, int, int, int, int);
-void ew_textlist_add(Entrance_List, const char *, void *, size_t, void (*) (void));
+void ew_textlist_add(Entrance_List, const char *, void *, size_t, void (*) (void*), void*);
#endif
|