From 22213ebeed19adc4158446da69d9831da1e286af Mon Sep 17 00:00:00 2001 From: Anas Nashif Date: Sun, 9 Dec 2012 08:42:42 -0800 Subject: [PATCH] Imported Upstream version 1.7.3 --- ChangeLog | 21 ++++++++++++-- NEWS | 9 +++++- configure | 26 ++++++++--------- configure.ac | 2 +- evas.spec | 2 +- src/lib/canvas/evas_async_events.c | 23 +++++++++++++++ src/lib/canvas/evas_object_box.c | 50 +++++++++++++++++++++++++------- src/lib/engines/common/evas_text_utils.c | 24 +++++++-------- 8 files changed, 116 insertions(+), 41 deletions(-) diff --git a/ChangeLog b/ChangeLog index 79f7277..ee0f391 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1069,16 +1069,31 @@ * Fixed leak in textblock and text props in general that made textblock recalcs lead very badly. Required changed to textgrid though a sit relied on the leaky behavior. - 2012-11-22 Sung W. Park (sung_) - * Fixed a bug where if an image object rendered using Evas GL + * Fixed a bug where if an image object rendered using Evas GL direct rendering and then another image object using Native Surface rendering, there was a potential for it to fall into the same direct rendering path. -2012-11-23 Luis Felipe Strano Moraes +2012-11-23 Luis Felipe Strano Moraes 1.7.2 release +2012-11-29 Cedric Bail + + * Only unreference font when text is not used anymore. + +2012-11-30 Gustavo Sverzut Barbieri (k-s) + + * Fix evas_object_box.c to properly reset size_hint_min to zero if + there are no objects packed into the box. + +2012-12-07 Cedric Bail + + * Don't leak fd on exec. + +2012-12-07 Luis Felipe Strano Moraes + + * Release 1.7.3 diff --git a/NEWS b/NEWS index 7f4ee36..30f2df7 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,11 @@ -Evas 1.7.2 +Evas 1.7.3 + +Changes since Evas 1.7.2 +------------------------- + +Fixes: + * Fixed evas_object_box to reset size_hint_min to zero when no child. + * Don't leak fd on exec. Changes since Evas 1.7.1 ------------------------- diff --git a/configure b/configure index a3bdbeb..fdcf524 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.68 for evas 1.7.2. +# Generated by GNU Autoconf 2.68 for evas 1.7.3. # # Report bugs to . # @@ -570,8 +570,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='evas' PACKAGE_TARNAME='evas' -PACKAGE_VERSION='1.7.2' -PACKAGE_STRING='evas 1.7.2' +PACKAGE_VERSION='1.7.3' +PACKAGE_STRING='evas 1.7.3' PACKAGE_BUGREPORT='enlightenment-devel@lists.sourceforge.net' PACKAGE_URL='' @@ -1808,7 +1808,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures evas 1.7.2 to adapt to many kinds of systems. +\`configure' configures evas 1.7.3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1882,7 +1882,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of evas 1.7.2:";; + short | recursive ) echo "Configuration of evas 1.7.3:";; esac cat <<\_ACEOF @@ -2253,7 +2253,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -evas configure 1.7.2 +evas configure 1.7.3 generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. @@ -3105,7 +3105,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by evas $as_me 1.7.2, which was +It was created by evas $as_me 1.7.3, which was generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -3929,7 +3929,7 @@ fi # Define the identity of the package. PACKAGE='evas' - VERSION='1.7.2' + VERSION='1.7.3' cat >>confdefs.h <<_ACEOF @@ -12963,7 +12963,7 @@ _ACEOF cat >>confdefs.h <<_ACEOF -#define VMIC 2 +#define VMIC 3 _ACEOF @@ -12971,7 +12971,7 @@ cat >>confdefs.h <<_ACEOF #define VREV 0 _ACEOF -version_info="8:2:7" +version_info="8:3:7" release_info="" @@ -12990,7 +12990,7 @@ case "$host_os" in MODULE_ARCH="$host_os-$host_cpu" ;; *) - MODULE_ARCH="$host_os-$host_cpu-1.7.2" + MODULE_ARCH="$host_os-$host_cpu-1.7.3" ;; esac @@ -34324,7 +34324,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by evas $as_me 1.7.2, which was +This file was extended by evas $as_me 1.7.3, which was generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -34390,7 +34390,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -evas config.status 1.7.2 +evas config.status 1.7.3 configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 9afd1dd..e996b77 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_define([v_maj], [1]) m4_define([v_min], [7]) -m4_define([v_mic], [2]) +m4_define([v_mic], [3]) m4_define([v_rev], m4_esyscmd([(svnversion "${SVN_REPO_PATH:-.}" | grep -v '\(export\|Unversioned directory\)' || echo 0) | awk -F : '{printf("%s\n", $1);}' | tr -d ' :MSP\n'])) m4_if(v_rev, [0], [m4_define([v_rev], m4_esyscmd([git log 2> /dev/null | (grep -m1 git-svn-id || echo 0) | sed -e 's/.*@\([0-9]*\).*/\1/' | tr -d '\n']))]) ##-- When released, remove the dnl on the below line diff --git a/evas.spec b/evas.spec index 560e4d5..f7c80e6 100644 --- a/evas.spec +++ b/evas.spec @@ -85,7 +85,7 @@ Summary: Multi-platform Canvas Library Name: evas -Version: 1.7.2 +Version: 1.7.3 Release: %{_rel} License: BSD Group: System Environment/Libraries diff --git a/src/lib/canvas/evas_async_events.c b/src/lib/canvas/evas_async_events.c index 1002d3d..3f9fbd7 100644 --- a/src/lib/canvas/evas_async_events.c +++ b/src/lib/canvas/evas_async_events.c @@ -33,6 +33,26 @@ struct _Evas_Event_Async Evas_Callback_Type type; }; +Eina_Bool +_evas_fd_close_on_exec(int fd) +{ +#ifdef HAVE_EXECVP + int flags; + + flags = fcntl(fd, F_GETFD); + if (flags == -1) + return EINA_FALSE; + + flags |= FD_CLOEXEC; + if (fcntl(fd, F_SETFD, flags) == -1) + return EINA_FALSE; + return EINA_TRUE; +#else + (void) fd; + return EINA_FALSE; +#endif +} + int evas_async_events_init(void) { @@ -49,6 +69,9 @@ evas_async_events_init(void) return 0; } + _evas_fd_close_on_exec(filedes[0]); + _evas_fd_close_on_exec(filedes[1]); + _fd_read = filedes[0]; _fd_write = filedes[1]; diff --git a/src/lib/canvas/evas_object_box.c b/src/lib/canvas/evas_object_box.c index f36864f..74baa88 100644 --- a/src/lib/canvas/evas_object_box.c +++ b/src/lib/canvas/evas_object_box.c @@ -760,11 +760,17 @@ evas_object_box_layout_horizontal(Evas_Object *o, Evas_Object_Box_Data *priv, vo n_children = eina_list_count(priv->children); if (!n_children) - return; + { + evas_object_size_hint_min_set(o, 0, 0); + return; + } objects = (Evas_Object_Box_Option **)alloca(sizeof(Evas_Object_Box_Option *) * n_children); if (!objects) - return; + { + evas_object_size_hint_min_set(o, 0, 0); + return; + } evas_object_geometry_get(o, &x, &y, &w, &h); global_pad = priv->pad.h; @@ -918,11 +924,17 @@ evas_object_box_layout_vertical(Evas_Object *o, Evas_Object_Box_Data *priv, void n_children = eina_list_count(priv->children); if (!n_children) - return; + { + evas_object_size_hint_min_set(o, 0, 0); + return; + } objects = (Evas_Object_Box_Option **)alloca(sizeof(Evas_Object_Box_Option *) * n_children); if (!objects) - return; + { + evas_object_size_hint_min_set(o, 0, 0); + return; + } evas_object_geometry_get(o, &x, &y, &w, &h); global_pad = priv->pad.v; @@ -1020,7 +1032,10 @@ evas_object_box_layout_homogeneous_horizontal(Evas_Object *o, Evas_Object_Box_Da n_children = eina_list_count(priv->children); if (!n_children) - return; + { + evas_object_size_hint_min_set(o, 0, 0); + return; + } evas_object_geometry_get(o, &x, &y, &w, &h); @@ -1081,7 +1096,10 @@ evas_object_box_layout_homogeneous_vertical(Evas_Object *o, Evas_Object_Box_Data n_children = eina_list_count(priv->children); if (!n_children) - return; + { + evas_object_size_hint_min_set(o, 0, 0); + return; + } evas_object_geometry_get(o, &x, &y, &w, &h); @@ -1142,7 +1160,10 @@ evas_object_box_layout_homogeneous_max_size_horizontal(Evas_Object *o, Evas_Obje n_children = eina_list_count(priv->children); if (!n_children) - return; + { + evas_object_size_hint_min_set(o, 0, 0); + return; + } evas_object_geometry_get(o, &x, &y, &w, &h); @@ -1226,7 +1247,10 @@ evas_object_box_layout_homogeneous_max_size_vertical(Evas_Object *o, Evas_Object n_children = eina_list_count(priv->children); if (!n_children) - return; + { + evas_object_size_hint_min_set(o, 0, 0); + return; + } evas_object_geometry_get(o, &x, &y, &w, &h); @@ -1378,7 +1402,10 @@ evas_object_box_layout_flow_horizontal(Evas_Object *o, Evas_Object_Box_Data *pri n_children = eina_list_count(priv->children); if (!n_children) - return; + { + evas_object_size_hint_min_set(o, 0, 0); + return; + } /* *per row* arrays */ row_max_h = (int *)alloca(sizeof(int) * n_children); @@ -1552,7 +1579,10 @@ evas_object_box_layout_flow_vertical(Evas_Object *o, Evas_Object_Box_Data *priv, n_children = eina_list_count(priv->children); if (!n_children) - return; + { + evas_object_size_hint_min_set(o, 0, 0); + return; + } /* *per col* arrays */ col_max_w = (int *)alloca(sizeof(int) * n_children); diff --git a/src/lib/engines/common/evas_text_utils.c b/src/lib/engines/common/evas_text_utils.c index 7abf07f..5dd3e13 100644 --- a/src/lib/engines/common/evas_text_utils.c +++ b/src/lib/engines/common/evas_text_utils.c @@ -60,14 +60,14 @@ evas_common_text_props_content_nofree_unref(Evas_Text_Props *props) if (!props->info) return; - if (props->font_instance) - { - evas_common_font_int_unref(props->font_instance); - props->font_instance = NULL; - } - if (--(props->info->refcount) == 0) { + if (props->font_instance) + { + evas_common_font_int_unref(props->font_instance); + props->font_instance = NULL; + } + free(props->glyphs); props->glyphs = NULL; props->glyphs_length = 0; @@ -90,18 +90,18 @@ evas_common_text_props_content_unref(Evas_Text_Props *props) if (!props->info) return; - if (props->font_instance) - { - evas_common_font_int_unref(props->font_instance); - props->font_instance = NULL; - } - free(props->glyphs); props->glyphs = NULL; props->glyphs_length = 0; if (--(props->info->refcount) == 0) { + if (props->font_instance) + { + evas_common_font_int_unref(props->font_instance); + props->font_instance = NULL; + } + if (props->info->glyph) free(props->info->glyph); #ifdef OT_SUPPORT -- 2.7.4