eina_value: break usage, but makes it more uniform and correct.
authorGustavo Sverzut Barbieri <barbieri@gmail.com>
Sat, 11 Feb 2012 00:34:25 +0000 (00:34 +0000)
committerGustavo Sverzut Barbieri <barbieri@gmail.com>
Sat, 11 Feb 2012 00:34:25 +0000 (00:34 +0000)
commit1fc6b13d100bf6b0538162cc1b5189e4971c0e02
tree3031f17331cdf8b13f1aa9d144d75ad7cd579232
parent3fbce27e8d7bf9467cf0a2688ed754fbf8799157
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.

SVN revision: 67843
legacy/eina/src/include/eina_model.h
legacy/eina/src/include/eina_value.h
legacy/eina/src/lib/eina_value.c
legacy/eina/src/tests/eina_test_model.c
legacy/eina/src/tests/eina_test_value.c