cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f5487c5d3e2de4ed85b16d1d65ed409f0ee06244
commit f5487c5d3e2de4ed85b16d1d65ed409f0ee06244 Author: Cedric Bail <[email protected]> Date: Wed Sep 13 10:39:31 2017 -0700 eina: fix Eina_Rectangle support in Eina_Value. Thanks for the review Gustavo. --- src/lib/eina/eina_value.c | 20 +++++++++----------- src/lib/eina/eina_value.h | 2 +- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/src/lib/eina/eina_value.c b/src/lib/eina/eina_value.c index 6088d63695..d3a9d6dec6 100644 --- a/src/lib/eina/eina_value.c +++ b/src/lib/eina/eina_value.c @@ -4842,14 +4842,11 @@ _eina_value_type_rectangle_convert_to(const Eina_Value_Type *type EINA_UNUSED, c if ((convert == EINA_VALUE_TYPE_STRING) || (convert == EINA_VALUE_TYPE_STRINGSHARE)) { - Eina_Strbuf *buf; - const char *str; + char str[1024]; - buf = eina_strbuf_new(); - eina_strbuf_append_printf(buf, "[ %i, %i, %i, %i ]", - tr->x, tr->y, tr->w, tr->h); - str = eina_strbuf_string_get(buf); - ret = eina_value_type_pset(convert, convert_mem, &str); + snprintf(str, 1024, "[ %i, %i, %i, %i ]", + tr->x, tr->y, tr->w, tr->h); + ret = eina_value_type_pset(convert, convert_mem, str); } return ret; @@ -4889,23 +4886,24 @@ _eina_value_type_rectangle_pset(const Eina_Value_Type *type EINA_UNUSED, void *m static Eina_Bool _eina_value_type_rectangle_vset(const Eina_Value_Type *type, void *mem, va_list args) { - const Eina_Rectangle *r = va_arg(args, Eina_Rectangle *); - return _eina_value_type_rectangle_pset(type, mem, r); + const Eina_Rectangle r = va_arg(args, Eina_Rectangle); + return _eina_value_type_rectangle_pset(type, mem, &r); } static Eina_Bool _eina_value_type_rectangle_pget(const Eina_Value_Type *type EINA_UNUSED, const void *mem, void *ptr) { const Eina_Rectangle *tr = mem; + Eina_Rectangle *r = ptr; - memcpy(ptr, &tr, sizeof (void*)); + *r = *tr; return EINA_TRUE; } EAPI const Eina_Value_Type _EINA_VALUE_TYPE_RECTANGLE = { EINA_VALUE_TYPE_VERSION, sizeof (Eina_Rectangle), - "Eina_Value_Rectangle", + "Eina_Rectangle", _eina_value_type_rectangle_setup, _eina_value_type_rectangle_flush, _eina_value_type_rectangle_copy, diff --git a/src/lib/eina/eina_value.h b/src/lib/eina/eina_value.h index 090000706a..305d378548 100644 --- a/src/lib/eina/eina_value.h +++ b/src/lib/eina/eina_value.h @@ -3679,7 +3679,7 @@ EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_FILE; /** * @var EINA_VALUE_TYPE_RECTANGLE - * manages optional type. + * manages Eina_Rectangle type. * * @since 1.21 */ --
