diff options
Diffstat (limited to 'src/lib/evas/vg/evas_vg_cache.c')
-rw-r--r-- | src/lib/evas/vg/evas_vg_cache.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/src/lib/evas/vg/evas_vg_cache.c b/src/lib/evas/vg/evas_vg_cache.c index 1e56fc14c5..f628a781d1 100644 --- a/src/lib/evas/vg/evas_vg_cache.c +++ b/src/lib/evas/vg/evas_vg_cache.c @@ -177,8 +177,7 @@ static void _evas_cache_vg_data_free_cb(void *data) { Vg_File_Data *val = data; - - efl_del(val->root); + efl_unref(val->root); free(val); } @@ -190,7 +189,7 @@ _evas_cache_svg_entry_free_cb(void *data) eina_stringshare_del(entry->file); eina_stringshare_del(entry->key); free(entry->hash_key); - efl_del(entry->root); + efl_unref(entry->root); free(entry); } @@ -232,7 +231,8 @@ evas_cache_vg_file_info(const char *file, const char *key) if (!vd) { vd = _vg_load_from_file(file, key); - eina_hash_add(vg_cache->vg_hash, eina_strbuf_string_get(hash_key), vd); + //File is exists. + if (vd) eina_hash_add(vg_cache->vg_hash, eina_strbuf_string_get(hash_key), vd); } eina_strbuf_free(hash_key); return vd; @@ -262,17 +262,16 @@ _apply_transformation(Efl_VG *root, double w, double h, Vg_File_Data *vg_data) eina_matrix3_scale(&m, sx, sy); eina_matrix3_translate(&m, -vg_data->view_box.x, -vg_data->view_box.y); } - evas_vg_node_transformation_set(root, &m); + efl_canvas_vg_node_transformation_set(root, &m); } static Efl_VG * _evas_vg_dup_vg_tree(Vg_File_Data *fd, double w, double h) { - Efl_VG *root; if (!fd) return NULL; - if ( !w || !h ) return NULL; + if (w < 1 || h < 1) return NULL; root = efl_duplicate(fd->root); _apply_transformation(root, w, h, fd); @@ -335,9 +334,8 @@ evas_cache_vg_tree_get(Evas_Cache_Vg_Entry *entry) if (entry->root) return entry->root; if (entry->file) - { - _evas_cache_svg_vg_tree_update(entry); - } + _evas_cache_svg_vg_tree_update(entry); + return entry->root; } |