forked from enlightenment/efl
eolian-cxx: Fix compilation errors with new any_value_ptr and mstring types
This commit is contained in:
parent
39318789a8
commit
bb887f9869
|
@ -394,7 +394,11 @@ inline char* convert_to_c_impl( ::efl::eina::string_view v, tag<char*, ::efl::ei
|
|||
std::strcpy(string, v.c_str());
|
||||
return string;
|
||||
}
|
||||
inline char** convert_to_c_impl(efl::eina::string_view* /*view*/, tag<char **, efl::eina::string_view*>)
|
||||
inline char** convert_to_c_impl(efl::eina::string_view& /*view*/, tag<char **, efl::eina::string_view, true>)
|
||||
{
|
||||
std::abort();
|
||||
}
|
||||
inline const char** convert_to_c_impl(efl::eina::string_view& /*view*/, tag<const char **, efl::eina::string_view, true>)
|
||||
{
|
||||
std::abort();
|
||||
}
|
||||
|
|
|
@ -110,6 +110,24 @@ struct visitor_generate
|
|||
r.base_qualifier.qualifier ^= qualifier_info::is_ref;
|
||||
return replace_base_type(r, " ::efl::eina::string_view");
|
||||
}}
|
||||
, {"mstring", false, nullptr, nullptr, [&]
|
||||
{
|
||||
regular_type_def r = regular;
|
||||
r.base_qualifier.qualifier |= qualifier_info::is_ref;
|
||||
// r.base_qualifier.qualifier ^= qualifier_info::is_const;
|
||||
if(is_out || is_return)
|
||||
return replace_base_type(r, " ::std::string");
|
||||
return replace_base_type(r, " ::efl::eina::string_view");
|
||||
}}
|
||||
, {"mstring", true, nullptr, nullptr, [&]
|
||||
{
|
||||
regular_type_def r = regular;
|
||||
r.base_qualifier.qualifier ^= qualifier_info::is_ref;
|
||||
// r.base_qualifier.qualifier ^= qualifier_info::is_const;
|
||||
if(is_out || is_return)
|
||||
return replace_base_type(r, " ::std::string");
|
||||
return replace_base_type(r, " ::efl::eina::string_view");
|
||||
}}
|
||||
, {"stringshare", nullptr, nullptr, nullptr, [&]
|
||||
{
|
||||
regular_type_def r = regular;
|
||||
|
@ -124,6 +142,13 @@ struct visitor_generate
|
|||
, {"any_value", false, nullptr, nullptr, [&]
|
||||
{ return regular_type_def{" ::efl::eina::value_view", regular.base_qualifier, {}};
|
||||
}}
|
||||
, {"any_value_ptr", true, nullptr, nullptr, [&]
|
||||
{
|
||||
return regular_type_def{" ::efl::eina::value", regular.base_qualifier ^ qualifier_info::is_ref, {}};
|
||||
}}
|
||||
, {"any_value_ptr", false, nullptr, nullptr, [&]
|
||||
{ return regular_type_def{" ::efl::eina::value_view", regular.base_qualifier ^ qualifier_info::is_ref, {}};
|
||||
}}
|
||||
};
|
||||
if(regular.base_type == "void_ptr")
|
||||
{
|
||||
|
|
|
@ -102,7 +102,7 @@ void _name1_name2_type_generation_instringshareown(Eo *obj EINA_UNUSED, Type_Gen
|
|||
eina_stringshare_del(v);
|
||||
}
|
||||
|
||||
void _name1_name2_type_generation_instringptrown(Eo *obj EINA_UNUSED, Type_Generation_Data *pd EINA_UNUSED, char * *v)
|
||||
void _name1_name2_type_generation_instringptrown(Eo *obj EINA_UNUSED, Type_Generation_Data *pd EINA_UNUSED, const char * *v)
|
||||
{
|
||||
ck_assert_str_eq(*v, "foobar");
|
||||
free((void*)*v);
|
||||
|
@ -197,7 +197,7 @@ char * _name1_name2_type_generation_returnstringown(Eo *obj EINA_UNUSED, Type_Ge
|
|||
return p;
|
||||
}
|
||||
|
||||
char * * _name1_name2_type_generation_returnstringownptr(Eo *obj EINA_UNUSED, Type_Generation_Data *pd EINA_UNUSED)
|
||||
const char * * _name1_name2_type_generation_returnstringownptr(Eo *obj EINA_UNUSED, Type_Generation_Data *pd EINA_UNUSED)
|
||||
{
|
||||
const char foobar[] = "foobar";
|
||||
char** p1 = malloc(sizeof(const char*));
|
||||
|
|
Loading…
Reference in New Issue