On 16/08/16 15:38, Tom Hacohen wrote:
> On 16/08/16 15:27, Tom Hacohen wrote:
>> On 16/08/16 15:19, Gustavo Sverzut Barbieri wrote:
>>> On Tue, Aug 16, 2016 at 11:09 AM, Tom Hacohen <t...@osg.samsung.com>
>>> wrote:
>>>> On 16/08/16 14:48, Gustavo Sverzut Barbieri wrote:
>>>>> On Tue, Aug 16, 2016 at 7:08 AM, Tom Hacohen <t...@osg.samsung.com>
>>>>> wrote:
>>>>>> On 16/08/16 04:38, Gustavo Sverzut Barbieri wrote:
>>>>>>> it seems at the end was a missing "#define ..._PROTECTED" in the .c
>>>>>>> file that includes the generated .eo.c.
>>>>>>>
>>>>>>> I wonder: shouldn't the generated .eo.c write:
>>>>>>> #ifndef ..._PROTECTED
>>>>>>> #define ..._PROTECTED
>>>>>>> #endif
>>>>>>>
>>>>>>
>>>>>> No. The .eo.c should be included at the end of the .c file and the
>>>>>> .eo.h
>>>>>> is at the beginning. You need to define the protected before the .h.
>>>>>
>>>>> what about one of these in the .eo.c:
>>>>>
>>>>> 1 - define the methods and maybe warn the user (would help me)
>>>>> #ifndef .._PROTECTED
>>>>> // replicate all methods locally to avoid issues
>>>>> #warning "you should define ..._PROTECTED before including .eo.c"
>>>>> EAPI ... methods...()
>>>>> #endif
>>>>>
>>>>>
>>>>> 2 - fail
>>>>> #ifndef ..._PROTECTED
>>>>> #error "Your class/interface/mixin declares @protected methods, you
>>>>> must define ..._PROTECTED before including .eo.c otherwise it won't
>>>>> work"
>>>>> #endif
>>>>
>>>> Maybe we should just get rid of this define altogether... If your code
>>>> works without the define, then there's nothing in the .eo.c that should
>>>> require it. So I guess this is just extraneous and should be removed.
>>>>
>>>> Daniel?
>>>
>>> AFAIU the symbol won't be exported and will result in NULL being used.
>>>
>>> If you remove the PROTECT define, then you either need to generate
>>> another file (ie: .eo.protected.h) or it will always be accessible to
>>> wider public.
>>>
>>> I'm not sure there is any blocker from external users calling
>>> protected stuff other than hiding the symbol.
>>>
>>>
>>
>> No, you got me wrong, I meant remove the define from the .eo.c and keep
>> it in the .eo.h.
>>
>> I don't see a case where you would want to not have this piece of code
>> included in the .eo.c.
>
> According to Daniel there are no ifdefs in the .eo.c... So I don't
> understand the problem...

Actually, I can see why there would still be a problem because of the 
weak symbols thing.

I guess the best way then, as you suggested is to do the ifndef. We can 
probably do an error, not a warning.

--
Tom.


------------------------------------------------------------------------------
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to