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
  */

-- 


Reply via email to