Howard Chu writes:
I just did a quick review of the deref control code. I thought we had already established this policy since the OpenLDAP 2.1 days: no more naked char *'s in new code. Always use struct bervals, (...)
Yes, I remember that for data structures at least. And exposed prototypes, or something like that.
Not for internals of a function, I hope. It's cumbersome (and harder for the compiler to optimize) to write bv->bv_val all the time instead of str.
On a related note, I'm still not so thrilled with the STRLENOF() macro. Most of the time I use sizeof("strconst") because I *know* there's a trailing NUL and I *want* it incorporated in the result...
Yes, in particular STRLENOF("") + 1 looks stupid. Though it's a bit more readable in a number of cases since it expresses the intent more directly.
One I really hate is AC_MEMCPY - partly because these capital letters are glaring at me for no good reason, but also because expands to memmove, not memcpy. Any reason not to use memcpy in cases where source and destination cannot overlap? That ought to be a bit faster too. (Might even go through the code and replace it for that reason.)