The function is renamed form _efl_add_internal_start_bindings. The function is meant to be used when bindings need to customize constructor call, for example to pass data when a class defined in the bound language gets instantiating from C.
Well, I am barely following what is going on here, put the name _efl_add_internal_start_external_constructor is hideous...
Do we really need to have both external and internal in the same name?
This method adds two new parameters to _efl_add_internal_start: external_ctor and sub_ctor_data, obviously they should match.
And here's maybe the solution: let's call it sub_ctor or secondary_ctor, use this name in both parameters, and rename the method to something like _efl_add_internal_start_with_sub_constructor.
Also, I have absolutely no idea what am I allowed to do in the secondary constructor. Is there any method I must call? efl_constructor() maybe? In what order?
I know this method is meant to be internal but unless we document things clearly our technical debt just grows and grows.