eina: make eina_value_pget on an EINA_VALUE_TYPE_STRINGSHARE return a new reference to a stringshare.

This commit is contained in:
Cedric BAIL 2018-04-27 16:19:42 -07:00
parent 994448edc4
commit b1883c7989
1 changed files with 11 additions and 1 deletions

View File

@ -2224,6 +2224,16 @@ _eina_value_type_stringshare_pset(const Eina_Value_Type *type EINA_UNUSED, void
return eina_stringshare_replace((const char **)mem, *str);
}
static Eina_Bool
_eina_value_type_stringshare_pget(const Eina_Value_Type *type EINA_UNUSED, const void *mem, void *ptr)
{
const Eina_Stringshare * const *src = mem;
Eina_Stringshare **dst = ptr;
*dst = eina_stringshare_ref(*src);
return EINA_TRUE;
}
static Eina_Bool
_eina_value_type_string_flush(const Eina_Value_Type *type EINA_UNUSED, void *mem)
{
@ -5197,7 +5207,7 @@ static const Eina_Value_Type _EINA_VALUE_TYPE_BASICS[] = {
NULL, /* no convert from */
_eina_value_type_stringshare_vset,
_eina_value_type_stringshare_pset,
_eina_value_type_string_common_pget
_eina_value_type_stringshare_pget
},
{
EINA_VALUE_TYPE_VERSION,