Hi Everyone, I'm making some const-correctness fixes to some downstream libraries that use JNU_* functions, and noticed that JNU_IsInstanceOfByName takes in the class name by char* instead of const char* when it does not need to modify the string. It would be useful to change this so that we don't have to (unnecessarily) const-cast every time and can safely pass string literals to this function. Patch is inline below - any comments/feedback welcome.
Thanks, -Andrew diff -r 70fab3a8ff02 src/java.base/share/native/libjava/jni_util.c --- a/src/java.base/share/native/libjava/jni_util.c Tue Jul 16 07:29:12 2019 +0900 +++ b/src/java.base/share/native/libjava/jni_util.c Mon Jul 15 16:07:35 2019 -0700 @@ -1096,7 +1096,7 @@ } JNIEXPORT jint JNICALL -JNU_IsInstanceOfByName(JNIEnv *env, jobject object, char* classname) +JNU_IsInstanceOfByName(JNIEnv *env, jobject object, const char* classname) { jclass cls; if ((*env)->EnsureLocalCapacity(env, 1) < 0) diff -r 70fab3a8ff02 src/java.base/share/native/libjava/jni_util.h --- a/src/java.base/share/native/libjava/jni_util.h Tue Jul 16 07:29:12 2019 +0900 +++ b/src/java.base/share/native/libjava/jni_util.h Mon Jul 15 16:07:35 2019 -0700 @@ -208,7 +208,7 @@ * has been thrown. */ JNIEXPORT jint JNICALL -JNU_IsInstanceOfByName(JNIEnv *env, jobject object, char *classname); +JNU_IsInstanceOfByName(JNIEnv *env, jobject object, const char *classname); /* Get or set class and instance fields.