eina_value: break usage, but makes it more uniform and correct.
authorbarbieri <barbieri@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sat, 11 Feb 2012 00:34:25 +0000 (00:34 +0000)
committerbarbieri <barbieri@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sat, 11 Feb 2012 00:34:25 +0000 (00:34 +0000)
commit62d5622b4f557398a61f985672bb25c50f021bd9
tree32ccf89f346355797ce0c7e20324a2c637afb472
parent7a7fe4593880f8a739ac2a72a6a36e3d362e3abb
eina_value: break usage, but makes it more uniform and correct.

I did a bad decision to steal memory for Array, List, Hash and Struct
types, it was nice to not have to copy it internally, but breaks when
one needs to set a new value that was set elsewhere. What did not
happen with string, integers and other basic types.

This was exposed by Raphael Kubo using eina_model_property_set() with
complex types (Array, List and Hash) and it was not possible to
correctly set such properties.

Now it's all set, but the behavior changed and the memory is not
stolen and released anymore. Test eina_test_value.c was changed to
reflect it.

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/eina@67843 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33
src/include/eina_model.h
src/include/eina_value.h
src/lib/eina_value.c
src/tests/eina_test_model.c
src/tests/eina_test_value.c