Fix compiler warnings in netty Epoll and unix common

Motivation:
Google requires stricter compilation by adding -Werror and enabling many other warnings.

Modification:

* fix warning caused by -Wmissing-braces

* Use the address of `sendmmsg` rather than the function itself when
checking for presence.  This resovles the warning caused by
`-Wpointer-bool-conversion`.

More detail:
When compiling on Linux, `sendmmsg` is always present, so the
function is always nonnull.  When compiling elsewhere, the
function is defined as `__attribute__((weak))` which means it
may be absent at link time.  This is controlled by
`IO_NETTY_SENDMMSG_NOT_FOUND`, which is off by default.

The reason for the error is due to the risk of accidentally not
calling the function.  By adding `&` before the function, there
is no ambiguity.  (the result of the fn call cannot have its
address taken.)

* use != to check for sendmmsg

Result:
Easier compilation.
This commit is contained in:
Carl Mastrangelo 2017-06-20 16:41:29 -07:00 committed by Norman Maurer
parent 05e5aaf430
commit 101757e861

View File

@ -636,7 +636,9 @@ static jint netty_epoll_native_uioMaxIov(JNIEnv* env, jclass clazz) {
} }
static jboolean netty_epoll_native_isSupportingSendmmsg(JNIEnv* env, jclass clazz) { static jboolean netty_epoll_native_isSupportingSendmmsg(JNIEnv* env, jclass clazz) {
if (sendmmsg) { // Use & to avoid warnings with -Wtautological-pointer-compare when sendmmsg is
// not weakly defined.
if (&sendmmsg != NULL) {
return JNI_TRUE; return JNI_TRUE;
} }
return JNI_FALSE; return JNI_FALSE;