Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4804476

CompiledIC requires invokeinterface fix for virtual java.lang.Object method

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P2 P2
    • 1.4.2
    • 1.4.2
    • hotspot
    • b16
    • generic
    • generic

      4364955 describes a case where an invokeinterface is being performed on an
      interface class but for a method which is declared on java.lang.Object. These
      methods are not in the itables and using invokeinterface behavior on them is
      not correct. Apple Computer has provided a test case which causes a compiled
      inline cache for such a method (toString) to become megamorphic; in debug mode
      an assertion failure fires during the inline cache update. The calling code in
      C1 and C2 needs to be able to detect this case and tell
      CompiledIC::set_to_megamorphic that the current call site is for an
      invokevirtual instead of an invokeinterface.

      A test case is attached. To reproduce the failure, unpack the tar file, cd to
      the jl1 directory, and run "lint inf/src src/main". Many exceptions are thrown
      before the crash occurs; these appear to be normal. At least with C1 the
      following CompileOnly flag may be used:

      -XX:CompileOnly=com/jutils/javalint/checks/CheckDebuggingOutput.visitStaticFieldAccess

            kbr Kenneth Russell (Inactive)
            kbr Kenneth Russell (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: