< prev index next >

src/hotspot/share/prims/jvmtiEnv.cpp

Print this page
@@ -2693,13 +2693,13 @@
      Klass* k = java_lang_Class::as_Klass(k_mirror);
      NULL_CHECK(k, JVMTI_ERROR_INVALID_CLASS);
      result = k->compute_modifier_flags();
  
      // Reset the deleted  ACC_SUPER bit (deleted in compute_modifier_flags()).
-     if (k->is_super()) {
-       result |= JVM_ACC_SUPER;
-     }
+     // if (k->is_super()) {
+     //   result |= JVM_ACC_SUPER;
+     // }
    } else {
      result = (JVM_ACC_ABSTRACT | JVM_ACC_FINAL | JVM_ACC_PUBLIC);
    }
    *modifiers_ptr = result;
  

@@ -2826,11 +2826,12 @@
  
    // Allocate the result and fill it in.
    jfieldID* result_list = (jfieldID*)jvmtiMalloc(result_count * sizeof(jfieldID));
    for (int i = 0; i < result_count; i++, flds.next()) {
      result_list[i] = jfieldIDWorkaround::to_jfieldID(ik, flds.offset(),
-                                                      flds.access_flags().is_static());
+                                                      flds.access_flags().is_static(),
+                                                      flds.field_descriptor().is_flat());
    }
    assert(flds.done(), "just checking");
  
    // Fill in the results
    *field_count_ptr = result_count;

@@ -2864,12 +2865,13 @@
        *interface_count_ptr = 0;
        *interfaces_ptr = (jclass*) jvmtiMalloc(0 * sizeof(jclass));
        return JVMTI_ERROR_NONE;
      }
  
-     Array<InstanceKlass*>* interface_list = InstanceKlass::cast(k)->local_interfaces();
-     const int result_length = (interface_list == nullptr ? 0 : interface_list->length());
+     InstanceKlass* ik = InstanceKlass::cast(k);
+     Array<InstanceKlass*>* interface_list = ik->local_interfaces();
+     int result_length = (interface_list == nullptr ? 0 : interface_list->length());
      jclass* result_list = (jclass*) jvmtiMalloc(result_length * sizeof(jclass));
      for (int i_index = 0; i_index < result_length; i_index += 1) {
        InstanceKlass* klass_at = interface_list->at(i_index);
        assert(klass_at->is_klass(), "interfaces must be Klass*s");
        assert(klass_at->is_interface(), "interfaces must be interfaces");
< prev index next >