From 7e4e3fe5b8bbe8ec346db1af7a871b889089adc0 Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Wed, 16 Jan 2013 10:45:04 +0000 Subject: [PATCH] efl: let's not do useless over allocation and memcpy. SVN revision: 82872 --- src/lib/evas/canvas/evas_object_textgrid.c | 28 ++++++++++++---------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/lib/evas/canvas/evas_object_textgrid.c b/src/lib/evas/canvas/evas_object_textgrid.c index 4e80f7a568..51f4d0dbdd 100644 --- a/src/lib/evas/canvas/evas_object_textgrid.c +++ b/src/lib/evas/canvas/evas_object_textgrid.c @@ -696,16 +696,22 @@ evas_object_textgrid_render(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj if ((do_async) && (ENFN->multi_font_draw)) { Eina_Bool async_unref; + Evas_Font_Array_Data *fad; texts = malloc(sizeof(*texts)); - texts->array = eina_inarray_new(sizeof(Evas_Font_Array_Data), - 32); + texts->array = eina_inarray_new(sizeof(Evas_Font_Array_Data), 1); /* FIXME: Wasting 1 int here */ texts->refcount = 1; + fad = eina_inarray_grow(texts->array, row->texts_num); + if (!fad) + { + ERR("Failed to allocate Evas_Font_Array_Data."); + return ; + } + for (xx = 0; xx < row->texts_num; xx++) { Evas_Text_Props *props; - Evas_Font_Array_Data fad; props = evas_object_textgrid_textprop_int_to @@ -717,16 +723,14 @@ evas_object_textgrid_render(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj evas_unref_queue_glyph_put(obj->layer->evas, props->glyphs); - fad.color.r = row->texts[xx].r; - fad.color.g = row->texts[xx].g; - fad.color.b = row->texts[xx].b; - fad.color.a = row->texts[xx].a; - fad.x = row->texts[xx].x; - fad.glyphs = props->glyphs; + fad->color.r = row->texts[xx].r; + fad->color.g = row->texts[xx].g; + fad->color.b = row->texts[xx].b; + fad->color.a = row->texts[xx].a; + fad->x = row->texts[xx].x; + fad->glyphs = props->glyphs; - if (eina_inarray_push(texts->array, &fad) < 0) - ERR("Failed to push text onto texts array %p", - texts->array); + fad++; } async_unref =