eina: fix Eina_Rectangle support in Eina_Value.

Thanks for the review Gustavo.
This commit is contained in:
Cedric Bail 2017-09-13 10:39:31 -07:00
parent 430095d4f1
commit f5487c5d3e
2 changed files with 10 additions and 12 deletions

View File

@ -4842,14 +4842,11 @@ _eina_value_type_rectangle_convert_to(const Eina_Value_Type *type EINA_UNUSED, c
if ((convert == EINA_VALUE_TYPE_STRING) || if ((convert == EINA_VALUE_TYPE_STRING) ||
(convert == EINA_VALUE_TYPE_STRINGSHARE)) (convert == EINA_VALUE_TYPE_STRINGSHARE))
{ {
Eina_Strbuf *buf; char str[1024];
const char *str;
buf = eina_strbuf_new(); snprintf(str, 1024, "[ %i, %i, %i, %i ]",
eina_strbuf_append_printf(buf, "[ %i, %i, %i, %i ]", tr->x, tr->y, tr->w, tr->h);
tr->x, tr->y, tr->w, tr->h); ret = eina_value_type_pset(convert, convert_mem, str);
str = eina_strbuf_string_get(buf);
ret = eina_value_type_pset(convert, convert_mem, &str);
} }
return ret; return ret;
@ -4889,23 +4886,24 @@ _eina_value_type_rectangle_pset(const Eina_Value_Type *type EINA_UNUSED, void *m
static Eina_Bool static Eina_Bool
_eina_value_type_rectangle_vset(const Eina_Value_Type *type, void *mem, va_list args) _eina_value_type_rectangle_vset(const Eina_Value_Type *type, void *mem, va_list args)
{ {
const Eina_Rectangle *r = va_arg(args, Eina_Rectangle *); const Eina_Rectangle r = va_arg(args, Eina_Rectangle);
return _eina_value_type_rectangle_pset(type, mem, r); return _eina_value_type_rectangle_pset(type, mem, &r);
} }
static Eina_Bool static Eina_Bool
_eina_value_type_rectangle_pget(const Eina_Value_Type *type EINA_UNUSED, const void *mem, void *ptr) _eina_value_type_rectangle_pget(const Eina_Value_Type *type EINA_UNUSED, const void *mem, void *ptr)
{ {
const Eina_Rectangle *tr = mem; const Eina_Rectangle *tr = mem;
Eina_Rectangle *r = ptr;
memcpy(ptr, &tr, sizeof (void*)); *r = *tr;
return EINA_TRUE; return EINA_TRUE;
} }
EAPI const Eina_Value_Type _EINA_VALUE_TYPE_RECTANGLE = { EAPI const Eina_Value_Type _EINA_VALUE_TYPE_RECTANGLE = {
EINA_VALUE_TYPE_VERSION, EINA_VALUE_TYPE_VERSION,
sizeof (Eina_Rectangle), sizeof (Eina_Rectangle),
"Eina_Value_Rectangle", "Eina_Rectangle",
_eina_value_type_rectangle_setup, _eina_value_type_rectangle_setup,
_eina_value_type_rectangle_flush, _eina_value_type_rectangle_flush,
_eina_value_type_rectangle_copy, _eina_value_type_rectangle_copy,

View File

@ -3679,7 +3679,7 @@ EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_FILE;
/** /**
* @var EINA_VALUE_TYPE_RECTANGLE * @var EINA_VALUE_TYPE_RECTANGLE
* manages optional type. * manages Eina_Rectangle type.
* *
* @since 1.21 * @since 1.21
*/ */