Hi Alan,

On 6/02/2014 8:04 PM, Alan Bateman wrote:

This is a drive-by fix to the JDWP agent to fix 50+ warnings that have
been annoying me, see:
     https://bugs.openjdk.java.net/browse/JDK-8033758

The bulk of the warnings stem from using a switch statement to switch on
JVMTI and JDWP internal "agent" errors. The agent errors are arranged
(in util.h) so that they have integer values beyond the range of the
JVMTI errors.

There are several ways to deal with this, including suppressing the
warning. I toyed with splitting the switch statement into two so that
the JVMTI and agent errors are handled separately. It didn't seem to be
worth and the simplest is just to cast the jvmtiError to an int.

Ok - not the nicest but this isn't worth any additional effort.

The other warning (in ArrayTypeImpl's writeNewObjectArray) is just that
the compiler doesn't know if componentClass has been set in
getComponentClass. The simplest thing here is just to initialize to NULL.

Ok.

David
-----

The proposed changes are below.

-Alan


diff --git a/src/share/back/ArrayTypeImpl.c
b/src/share/back/ArrayTypeImpl.c
--- a/src/share/back/ArrayTypeImpl.c
+++ b/src/share/back/ArrayTypeImpl.c
@@ -112,7 +112,7 @@
      WITH_LOCAL_REFS(env, 1) {

          jarray array;
-        jclass componentClass;
+        jclass componentClass = NULL;
          jdwpError serror;

          serror = getComponentClass(env, arrayClass,
diff --git a/src/share/back/error_messages.c
b/src/share/back/error_messages.c
--- a/src/share/back/error_messages.c
+++ b/src/share/back/error_messages.c
@@ -140,7 +140,7 @@
  const char *
  jvmtiErrorText(jvmtiError error)
  {
-    switch (error) {
+    switch ((int)error) {
          CASE_RETURN_TEXT(JVMTI_ERROR_NONE)
          CASE_RETURN_TEXT(JVMTI_ERROR_INVALID_THREAD)
          CASE_RETURN_TEXT(JVMTI_ERROR_INVALID_THREAD_GROUP)
diff --git a/src/share/back/util.c b/src/share/back/util.c
--- a/src/share/back/util.c
+++ b/src/share/back/util.c
@@ -2122,7 +2122,7 @@
  jdwpError
  map2jdwpError(jvmtiError error)
  {
-    switch ( error ) {
+    switch ( (int)error ) {
          case JVMTI_ERROR_NONE:
              return JDWP_ERROR(NONE);
          case AGENT_ERROR_INVALID_THREAD:

Reply via email to