8031737: CHECK_NULL and CHECK_EXCEPTION macros cleanup

Rename CHECK_EXCEPTION macros with JNU prefix; use the defensive do {...} while (0) macro definition

Reviewed-by: chegar, mchung, ksrini, lancea, alanb
This commit is contained in:
Roger Riggs 2014-02-03 16:58:02 -05:00
parent 6261c40dca
commit c4f2b88d81
2 changed files with 38 additions and 15 deletions

View File

@ -279,14 +279,37 @@ JNU_NotifyAll(JNIEnv *env, jobject object);
#define JNU_IsNull(env,obj) ((obj) == NULL)
/************************************************************************
* Miscellaneous utilities used by the class libraries to check for exceptions
* Miscellaneous utilities used by the class libraries to return from
* a function if a value is NULL or an exception is pending.
*/
#define CHECK_NULL(x) if ((x) == NULL) return;
#define CHECK_NULL_RETURN(x, y) if ((x) == NULL) return (y);
#define CHECK_NULL(x) \
do { \
if ((x) == NULL) { \
return; \
} \
} while (0) \
#define CHECK_EXCEPTION(env) if ((*env)->ExceptionCheck(env)) return;
#define CHECK_EXCEPTION_RETURN(env, y) if ((*env)->ExceptionCheck(env)) return (y);
#define CHECK_NULL_RETURN(x, y) \
do { \
if ((x) == NULL) { \
return (y); \
} \
} while (0) \
#define JNU_CHECK_EXCEPTION(env) \
do { \
if ((*env)->ExceptionCheck(env)) { \
return; \
} \
} while (0) \
#define JNU_CHECK_EXCEPTION_RETURN(env, y) \
do { \
if ((*env)->ExceptionCheck(env)) { \
return (y); \
} \
} while (0)
/************************************************************************
* Debugging utilities

View File

@ -60,15 +60,15 @@ Java_sun_misc_Version_getJvmVersionInfo(JNIEnv *env, jclass cls)
(*func_p)(env, &info, sizeof(info));
setStaticIntField(env, cls, "jvm_major_version", JVM_VERSION_MAJOR(info.jvm_version));
CHECK_EXCEPTION_RETURN(env, JNI_FALSE);
JNU_CHECK_EXCEPTION_RETURN(env, JNI_FALSE);
setStaticIntField(env, cls, "jvm_minor_version", JVM_VERSION_MINOR(info.jvm_version));
CHECK_EXCEPTION_RETURN(env, JNI_FALSE);
JNU_CHECK_EXCEPTION_RETURN(env, JNI_FALSE);
setStaticIntField(env, cls, "jvm_micro_version", JVM_VERSION_MICRO(info.jvm_version));
CHECK_EXCEPTION_RETURN(env, JNI_FALSE);
JNU_CHECK_EXCEPTION_RETURN(env, JNI_FALSE);
setStaticIntField(env, cls, "jvm_build_number", JVM_VERSION_BUILD(info.jvm_version));
CHECK_EXCEPTION_RETURN(env, JNI_FALSE);
JNU_CHECK_EXCEPTION_RETURN(env, JNI_FALSE);
setStaticIntField(env, cls, "jvm_update_version", info.update_version);
CHECK_EXCEPTION_RETURN(env, JNI_FALSE);
JNU_CHECK_EXCEPTION_RETURN(env, JNI_FALSE);
jvm_special_version = info.special_update_version;
return JNI_TRUE;
@ -91,15 +91,15 @@ Java_sun_misc_Version_getJdkVersionInfo(JNIEnv *env, jclass cls)
JDK_GetVersionInfo0(&info, sizeof(info));
setStaticIntField(env, cls, "jdk_major_version", JDK_VERSION_MAJOR(info.jdk_version));
CHECK_EXCEPTION(env);
JNU_CHECK_EXCEPTION(env);
setStaticIntField(env, cls, "jdk_minor_version", JDK_VERSION_MINOR(info.jdk_version));
CHECK_EXCEPTION(env);
JNU_CHECK_EXCEPTION(env);
setStaticIntField(env, cls, "jdk_micro_version", JDK_VERSION_MICRO(info.jdk_version));
CHECK_EXCEPTION(env);
JNU_CHECK_EXCEPTION(env);
setStaticIntField(env, cls, "jdk_build_number", JDK_VERSION_BUILD(info.jdk_version));
CHECK_EXCEPTION(env);
JNU_CHECK_EXCEPTION(env);
setStaticIntField(env, cls, "jdk_update_version", info.update_version);
CHECK_EXCEPTION(env);
JNU_CHECK_EXCEPTION(env);
jdk_special_version = info.special_update_version;
}