From: <enl...@li...> - 2001-04-13 17:31:35
|
Enlightenment CVS committal Author : redalb Project : e17 Module : libs/etox Dir : e17/libs/etox/src Modified Files: Etox_private.h etox.c etox_color.c etox_obstacle.c etox_set.c etox_style.c Log Message: Fixed some segv's.. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/etox/src/Etox_private.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- Etox_private.h 2001/04/12 17:37:54 1.3 +++ Etox_private.h 2001/04/13 17:31:04 1.4 @@ -43,9 +43,10 @@ int font_size; Etox_Bit *bit_list; int num_bits; - Evas *evas; + Evas evas; int align; Etox_Color color; + int default_color; double padding; char vertical_align; int alpha_mod; =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/etox/src/etox.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -3 -r1.15 -r1.16 --- etox.c 2001/04/12 17:37:54 1.15 +++ etox.c 2001/04/13 17:31:04 1.16 @@ -167,8 +167,6 @@ if (e->text) free(e->text); - - return; } void @@ -239,6 +237,7 @@ etox_color_set_member(e->color, "fg", 255, 255, 255, 255); etox_color_set_member(e->color, "ol", 0, 0, 0, 255); etox_color_set_member(e->color, "sh", 0, 0, 0, 255); + e->default_color = 1; e->clip = NULL; return e; @@ -298,13 +297,17 @@ e->align = h_align; if (color) - e->color = color; + { + e->color = color; + e->default_color = 0; + } else { e->color = etox_color_new(); etox_color_set_member(e->color, "fg", 255, 255, 255, 255); etox_color_set_member(e->color, "ol", 0, 0, 0, 255); etox_color_set_member(e->color, "sh", 0, 0, 0, 255); + e->default_color = 1; } e->vertical_align = v_align; e->alpha_mod = 255; @@ -333,13 +336,13 @@ } if (e->font) free(e->font); - if (e->color) + if (e->color && e->default_color) etox_color_free(e->color); if (e->font_style) etox_style_free(e->font_style); free(e); - return; + e = NULL; } void =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/etox/src/etox_color.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- etox_color.c 2001/04/12 15:59:43 1.2 +++ etox_color.c 2001/04/13 17:31:05 1.3 @@ -35,11 +35,20 @@ void etox_color_free(Etox_Color color) { + Evas_List l; + if (!color) return; + + for (l = color->bit_list; l; l = l->next) + if (l->data) + free(l->data); + if (color->bit_list) evas_list_free(color->bit_list); free(color); + + color = NULL; } void =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/etox/src/etox_obstacle.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- etox_obstacle.c 2001/04/12 16:00:15 1.2 +++ etox_obstacle.c 2001/04/13 17:31:05 1.3 @@ -85,7 +85,7 @@ if (e->rect_list) free(e->rect_list); e->rect_list = mylist; - + obst = NULL; _etox_refresh(e); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/etox/src/etox_set.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- etox_set.c 2001/04/12 22:15:13 1.4 +++ etox_set.c 2001/04/13 17:31:05 1.5 @@ -523,6 +523,9 @@ { if (!e) return; + if (e->color) + etox_color_free(color); + e->color = color; _etox_refresh(e); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/etox/src/etox_style.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- etox_style.c 2001/04/12 17:37:54 1.2 +++ etox_style.c 2001/04/13 17:31:05 1.3 @@ -160,5 +160,7 @@ if(style->bits) free(style->bits); free(style); + + style = NULL; } } |