summaryrefslogtreecommitdiff
path: root/src/lib/eolian_cxx
diff options
context:
space:
mode:
authorFelipe Magno de Almeida <felipe@expertisesolutions.com.br>2016-06-16 21:48:07 -0300
committerFelipe Magno de Almeida <felipe@expertisesolutions.com.br>2016-06-16 21:48:07 -0300
commitb97a156ac42a0f20fb34abb496102948d0abe58a (patch)
tree573b514030c99b3d51421b46830353447f926583 /src/lib/eolian_cxx
parent901e8a0cfc20b6605dd9a3d27353810ff982e030 (diff)
eolian-cxx: Work with @inout parameter of void type
Diffstat (limited to 'src/lib/eolian_cxx')
-rw-r--r--src/lib/eolian_cxx/grammar/function_definition.hpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/lib/eolian_cxx/grammar/function_definition.hpp b/src/lib/eolian_cxx/grammar/function_definition.hpp
index b2280271d9..a2de1aaf41 100644
--- a/src/lib/eolian_cxx/grammar/function_definition.hpp
+++ b/src/lib/eolian_cxx/grammar/function_definition.hpp
@@ -63,13 +63,21 @@ struct function_definition_generator
63 { return p.direction == attributes::parameter_direction::out; }) 63 { return p.direction == attributes::parameter_direction::out; })
64 [ 64 [
65 attribute_reorder<1, 2> 65 attribute_reorder<1, 2>
66 (scope_tab << c_type << " __out_param_" << string << " = {};\n") 66 (scope_tab <<
67 (attribute_conditional([] (attributes::type_def const& p) -> bool
68 { return p != attributes::void_; })
69 [c_type] | "void*")
70 << " __out_param_" << string << " = {};\n")
67 ] 71 ]
68 | attribute_conditional([] (attributes::parameter_def const& p) -> bool 72 | attribute_conditional([] (attributes::parameter_def const& p) -> bool
69 { return p.direction == attributes::parameter_direction::inout; }) 73 { return p.direction == attributes::parameter_direction::inout; })
70 [ 74 [
71 attribute_reorder<1, 2, 1, 1, 2> 75 attribute_reorder<1, 2, 1, 1, 2>
72 (scope_tab << c_type << " __out_param_" << string << " = ::efl::eolian::convert_inout<" << c_type 76 (scope_tab <<
77 (attribute_conditional([] (attributes::type_def const& p) -> bool
78 { return p != attributes::void_; })
79 [c_type] | "void*")
80 << " __out_param_" << string << " = ::efl::eolian::convert_inout<" << c_type
73 << ", " << type << ">(" << string << ");\n") 81 << ", " << type << ">(" << string << ");\n")
74 ] 82 ]
75 | eps 83 | eps