VM_GetOrSetLocal doesn't check local slot type against requested type

XMLWordPrintable

    • Type: Bug
    • Resolution: Fixed
    • Priority: P3
    • 12
    • Affects Version/s: 9
    • Component/s: hotspot
    • None
    • b20

      VM_GetOrSetLocal::doit() blindly loads/stores a value of requested type without checking slot type first.

      GetLocal* documenation says that JVMTI_ERROR_TYPE_MISMATCH should be returned if variable type differs from requested.

      It manifests as an assertion failure in debug builds:
        assert(type() == T_OBJECT) failed: type check

      StackValue::get_obj() const+0x47
      StackValueCollection::obj_at(int) const+0x23
      VM_GetOrSetLocal::doit()+0x572

            Assignee:
            Serguei Spitsyn
            Reporter:
            Vladimir Ivanov
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: