eina_value: fix error condition handling.
authorbarbieri <barbieri>
Wed, 11 Jan 2012 21:34:49 +0000 (21:34 +0000)
committerbarbieri <barbieri@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 11 Jan 2012 21:34:49 +0000 (21:34 +0000)
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@67094 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/eina_value.c

index c5b34d2..6c9392f 100644 (file)
@@ -2416,7 +2416,11 @@ _eina_value_type_array_copy(const Eina_Value_Type *type __UNUSED__, const void *
         int i = eina_inarray_append(d->array, placeholder);
         void *imem = eina_inarray_nth(d->array, i);
         if ((i < 0) || (!imem)) goto error;
-        if (!subtype->copy(subtype, ptr, imem)) goto error;
+        if (!subtype->copy(subtype, ptr, imem))
+          {
+             eina_inarray_pop(d->array);
+             goto error;
+          }
      }
 
    return EINA_TRUE;