[gnutls-dev] RE: constification patch
ZIGLIO, Frediano, VF-IT
Frediano.Ziglio at vodafone.com
Tue Jan 3 11:31:12 CET 2006
....
> >
> > static inline const node_asn *
> > _asn1_find_up_const(const node_asn *node)
> > {
> > return _asn1_find_up((node_asn*) node);
> > }
> >
> > to
> >
> > #if defined(__GNUC__) && __GNUC__ >= 3
> > static inline const node_asn *
> > _asn1_find_up_const(const node_asn *node)
> > {
> > return _asn1_find_up((node_asn*) node);
> > }
> > #else
> > #define _asn1_find_up_const(node) _asn1_find_up((node_asn*) (node))
> > #endif
>
> How about changing the prototype of _asn1_find_up to include the const
> keyword instead? That seem more correct.
>
> Using typecasts like you do hide problems: what if _asn1_find_up does
> not preserve const? That would lead to a disaster, and the compiler
> will not warn about it.
>
> Further, it has not been written down, but the coding style for
> minitasn1 is slightly different than GnuTLS. Minitasn1 should be
> portable C89 code, and #if's like that make the code unreadable.
> Unless profiling show that you'd gain a non-negligible amount of time
> making that particular function inline (I highly doubt that), then it
> is worth the extra CPU cycles to have readable code. Optimize only
> when you need. In contrast, in GnuTLS we can use 'inline'
> unconditionally because there is a gnulib M4 test that make sure
> 'inline' is defined to "" if it is not available.
>
> If you update the patch, to change the prototype of the existing
> functions to use 'const' too, I'll review it. I know there is a lot
> of missing 'const' keywords in various places.
>
Happy New Year !!
I revised a bit the patch.
Attached an update. This make constification in minitasn library
portable C without #define and others uglyness.
Regards,
Frediano Ziglio
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gnutls.diff.gz
Type: application/x-gzip
Size: 4027 bytes
Desc: gnutls.diff.gz
Url : /pipermail/attachments/20060103/c9682e91/gnutls.diff-0001.bin
More information about the Gnutls-dev
mailing list