[openssl-project] inline functions

Richard Levitte levitte at openssl.org
Sun Jan 27 12:58:54 UTC 2019


You're talking about these lines from safestack.h:

    DEFINE_SPECIAL_STACK_OF(OPENSSL_STRING, char)
    DEFINE_SPECIAL_STACK_OF_CONST(OPENSSL_CSTRING, char)
    DEFINE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void)

and these from lhash.h:

    DEFINE_LHASH_OF(OPENSSL_STRING);
    DEFINE_LHASH_OF(OPENSSL_CSTRING);

I didn't think of those when looking at the PR, but you're entirely
correct that they are the direct cause of the issue, and should move
to someplace internal.

Cheers,
Richard

On Sun, 27 Jan 2019 12:30:07 +0100,
Dr Paul Dale wrote:
> 
> 
> I’d generally prefer functions over macros ― I think that the ctrl calls e.g. would be better
> wrapped with function to provide type checking.
> The overhead of a function call is pretty light these days so inline functions are difficult to
> justify (as anything except a premature optimisation?).
> 
> Both safestack and lhash are problematic cases.  The inline functions come from macros which I
> view as okay.  The problem is that some of these macros are expanded in the header for common
> cases (e.g. stack of stings).  We could address this by distinguishing between the function
> declarations and their instantiation and move the latter into its own C file.
> 
> Pauli
> -- 
> Dr Paul Dale | Cryptographer | Network Security & Encryption 
> Phone +61 7 3031 7217
> Oracle Australia
> 
>     On 27 Jan 2019, at 8:33 pm, Tim Hudson <tjh at openssl.org> wrote:
>    
>     From https://github.com/openssl/openssl/pull/7721
>    
>     Tim - I think inline functions in public header files simply shouldn't be present.
>     Matt - I agree
>     Richard - I'm ambivalent... in the case of stack and lhash, the generated functions we made
>     static inline expressly to get better C type safety, and to get away from the mkstack.pl
>      horror.
>    
>     It would be good to get a sense of the collective thoughts on the topic.
>    
>     Tim.
>    
>     _______________________________________________
>     openssl-project mailing list
>     openssl-project at openssl.org
>     https://mta.openssl.org/mailman/listinfo/openssl-project
> 
> 
> _______________________________________________
> openssl-project mailing list
> openssl-project at openssl.org
> https://mta.openssl.org/mailman/listinfo/openssl-project
-- 
Richard Levitte         levitte at openssl.org
OpenSSL Project         http://www.openssl.org/~levitte/


More information about the openssl-project mailing list