Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas
Dir : e17/libs/evas/src/lib/canvas Modified Files: evas_font_dir.c evas_name.c evas_object_image.c evas_object_main.c evas_object_smart.c evas_object_text.c Log Message: use stringshare. saves a few hundred allocs... if we start doing lots of text :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_font_dir.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -3 -r1.10 -r1.11 --- evas_font_dir.c 15 Oct 2005 22:02:59 -0000 1.10 +++ evas_font_dir.c 28 Nov 2005 15:18:00 -0000 1.11 @@ -94,7 +94,7 @@ p = strchr(name, ','); if (!p) { - fonts = evas_list_append(fonts, strdup(name)); + fonts = evas_list_append(fonts, evas_stringshare_add(name)); } else { @@ -110,7 +110,7 @@ fonts = evas_list_append(fonts, nm); pp = p + 1; p = strchr(pp, ','); - if (!p) fonts = evas_list_append(fonts, strdup(pp)); + if (!p) fonts = evas_list_append(fonts, evas_stringshare_add(pp)); } } return fonts; @@ -145,8 +145,8 @@ fd = evas_list_data(fonts_zero); if (fd->ref != 0) break; fonts_zero = evas_list_remove_list(fonts_zero, fonts_zero); - if (fd->name) free(fd->name); - if (fd->source) free(fd->source); + if (fd->name) evas_stringshare_del(fd->name); + if (fd->source) evas_stringshare_del(fd->source); evas->engine.func->font_free(evas->engine.data.output, fd->font); free(fd); } @@ -323,14 +323,14 @@ } #endif } - free(nm); + evas_stringshare_del(nm); } evas_list_free(fonts); fd = calloc(1, sizeof(Fndat)); if (fd) { - fd->name = strdup(name); - if (source) fd->source = strdup(source); + fd->name = evas_stringshare_add(name); + if (source) fd->source = evas_stringshare_add(source); fd->size = size; fd->font = font; fd->ref = 1; @@ -525,7 +525,7 @@ fn->type = 1; for (i = 0; i < 14; i++) { - fn->x.prop[i] = strdup(font_prop[i]); + fn->x.prop[i] = evas_stringshare_add(font_prop[i]); /* FIXME: what if strdup fails! */ } fn->path = evas_file_path_join(dir, fname); @@ -553,7 +553,7 @@ if (fn) { fn->type = 0; - fn->simple.name = strdup(fdir->data); + fn->simple.name = evas_stringshare_add(fdir->data); if (fn->simple.name) { char *p; @@ -591,11 +591,11 @@ fa = calloc(1, sizeof(Evas_Font_Alias)); if (fa) { - fa->alias = strdup(fname); + fa->alias = evas_stringshare_add(fname); fa->fn = object_text_font_cache_font_find_x(fd, fdef); if ((!fa->alias) || (!fa->fn)) { - if (fa->alias) free(fa->alias); + if (fa->alias) evas_stringshare_del(fa->alias); free(fa); } else @@ -637,10 +637,10 @@ fd->fonts = evas_list_remove(fd->fonts, fn); for (i = 0; i < 14; i++) { - if (fn->x.prop[i]) free(fn->x.prop[i]); + if (fn->x.prop[i]) evas_stringshare_del(fn->x.prop[i]); } - if (fn->simple.name) free(fn->simple.name); - if (fn->path) free(fn->path); + if (fn->simple.name) evas_stringshare_del(fn->simple.name); + if (fn->path) evas_stringshare_del(fn->path); free(fn); } while (fd->aliases) @@ -649,7 +649,7 @@ fa = fd->aliases->data; fd->aliases = evas_list_remove(fd->aliases, fa); - if (fa->alias) free(fa->alias); + if (fa->alias) evas_stringshare_del(fa->alias); free(fa); } free(fd); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_name.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- evas_name.c 18 Jun 2005 01:00:29 -0000 1.6 +++ evas_name.c 28 Nov 2005 15:18:00 -0000 1.7 @@ -22,13 +22,13 @@ if (obj->name) { obj->layer->evas->name_hash = evas_hash_del(obj->layer->evas->name_hash, obj->name, obj); - free(obj->name); + evas_stringshare_del(obj->name); } if (!name) obj->name = NULL; else { - obj->name = strdup(name); - obj->layer->evas->name_hash = evas_hash_add(obj->layer->evas->name_hash, obj->name, obj); + obj->name = evas_stringshare_add(name); + obj->layer->evas->name_hash = evas_hash_direct_add(obj->layer->evas->name_hash, obj->name, obj); } } =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_object_image.c,v retrieving revision 1.34 retrieving revision 1.35 diff -u -3 -r1.34 -r1.35 --- evas_object_image.c 11 Nov 2005 06:09:46 -0000 1.34 +++ evas_object_image.c 28 Nov 2005 15:18:00 -0000 1.35 @@ -138,11 +138,11 @@ if ((o->cur.key) && (key) && (!strcmp(o->cur.key, key))) return; } - if (o->cur.file) free(o->cur.file); - if (o->cur.key) free(o->cur.key); - if (file) o->cur.file = strdup(file); + if (o->cur.file) evas_stringshare_del(o->cur.file); + if (o->cur.key) evas_stringshare_del(o->cur.key); + if (file) o->cur.file = evas_stringshare_add(file); else o->cur.file = NULL; - if (key) o->cur.key = strdup(key); + if (key) o->cur.key = evas_stringshare_add(key); else o->cur.key = NULL; o->prev.file = NULL; o->prev.key = NULL; @@ -1330,8 +1330,8 @@ return; MAGIC_CHECK_END(); /* free obj */ - if (o->cur.file) free(o->cur.file); - if (o->cur.key) free(o->cur.key); + if (o->cur.file) evas_stringshare_del(o->cur.file); + if (o->cur.key) evas_stringshare_del(o->cur.key); if (o->engine_data) obj->layer->evas->engine.func->image_free(obj->layer->evas->engine.data.output, o->engine_data); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_object_main.c,v retrieving revision 1.40 retrieving revision 1.41 diff -u -3 -r1.40 -r1.41 --- evas_object_main.c 4 Nov 2005 22:53:54 -0000 1.40 +++ evas_object_main.c 28 Nov 2005 15:18:00 -0000 1.41 @@ -27,11 +27,6 @@ obj->func->free(obj); if (obj->name) evas_object_name_set(obj, NULL); if (!was_smart_child) evas_object_release(obj, clean_layer); - if (obj->name) - { - free(obj->name); - obj->name = NULL; - } if (obj->clip.clipees) evas_list_free(obj->clip.clipees); while (obj->clip.changes) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_object_smart.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -3 -r1.17 -r1.18 --- evas_object_smart.c 8 Nov 2005 11:59:21 -0000 1.17 +++ evas_object_smart.c 28 Nov 2005 15:18:00 -0000 1.18 @@ -225,7 +225,7 @@ if (!event) return; if (!func) return; cb = calloc(1, sizeof(Evas_Smart_Callback)); - cb->event = strdup(event); + cb->event = evas_stringshare_add(event); cb->func = func; cb->func_data = (void *)data; obj->smart.callbacks = evas_list_prepend(obj->smart.callbacks, cb); @@ -326,7 +326,7 @@ if (cb->delete_me) { obj->smart.callbacks = evas_list_remove(obj->smart.callbacks, cb); - if (cb->event) free(cb->event); + if (cb->event) evas_stringshare_add(cb->event); free(cb); } } @@ -359,7 +359,7 @@ cb = obj->smart.callbacks->data; obj->smart.callbacks = evas_list_remove(obj->smart.callbacks, cb); - if (cb->event) free(cb->event); + if (cb->event) evas_stringshare_add(cb->event); free(cb); } obj->smart.parent = NULL; =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_object_text.c,v retrieving revision 1.46 retrieving revision 1.47 diff -u -3 -r1.46 -r1.47 --- evas_object_text.c 27 Nov 2005 07:02:34 -0000 1.46 +++ evas_object_text.c 28 Nov 2005 15:18:00 -0000 1.47 @@ -108,8 +108,8 @@ if ((o->cur.source) && (font_source) && (!strcmp(o->cur.source, font_source))) return; - if (o->cur.source) free(o->cur.source); - if (font_source) o->cur.source = strdup(font_source); + if (o->cur.source) evas_stringshare_del(o->cur.source); + if (font_source) o->cur.source = evas_stringshare_add(font_source); else o->cur.source = NULL; } @@ -179,8 +179,8 @@ o->engine_data = evas_font_load(obj->layer->evas, font, o->cur.source, size); if (!same_font) { - if (o->cur.font) free(o->cur.font); - if (font) o->cur.font = strdup(font); + if (o->cur.font) evas_stringshare_del(o->cur.font); + if (font) o->cur.font = evas_stringshare_add(font); else o->cur.font = NULL; o->prev.font = NULL; } @@ -293,8 +293,8 @@ obj->layer->evas->pointer.x, obj->layer->evas->pointer.y, 1, 1); /* DO II */ - if (o->cur.text) free(o->cur.text); - if (text && *text) o->cur.text = strdup(text); + if (o->cur.text) evas_stringshare_del(o->cur.text); + if (text && *text) o->cur.text = evas_stringshare_add(text); else o->cur.text = NULL; o->prev.text = NULL; if ((o->engine_data) && (o->cur.text)) @@ -917,7 +917,7 @@ MAGIC_CHECK_END(); while (e->font_path) { - free(e->font_path->data); + evas_stringshare_del(e->font_path->data); e->font_path = evas_list_remove(e->font_path, e->font_path->data); } } @@ -935,7 +935,7 @@ return; MAGIC_CHECK_END(); if (!path) return; - e->font_path = evas_list_append(e->font_path, strdup(path)); + e->font_path = evas_list_append(e->font_path, evas_stringshare_add(path)); } /** @@ -951,7 +951,7 @@ return; MAGIC_CHECK_END(); if (!path) return; - e->font_path = evas_list_prepend(e->font_path, strdup(path)); + e->font_path = evas_list_prepend(e->font_path, evas_stringshare_add(path)); } /** @@ -1197,9 +1197,9 @@ return; MAGIC_CHECK_END(); /* free obj */ - if (o->cur.text) free(o->cur.text); - if (o->cur.font) free(o->cur.font); - if (o->cur.source) free(o->cur.source); + if (o->cur.text) evas_stringshare_del(o->cur.text); + if (o->cur.font) evas_stringshare_del(o->cur.font); + if (o->cur.source) evas_stringshare_del(o->cur.source); if (o->engine_data) evas_font_free(obj->layer->evas, o->engine_data); o->magic = 0; free(o); ------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs