Uploaded image for project: 'Commons BCEL'
  1. Commons BCEL
  2. BCEL-209

Bug fixes and improvements to InvokeDynamic and BootStrapMethods implementation

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 6.0
    • None
    • None

    Description

      (Apologies in advance - this is a very large diff.)
      During the past year, both the Apache Commons BCEL team and our group here at the UW independently completed the support for InvokeDynamic . Some things we chose to do the same way, but there are a few items that are quite different. Trying not to be too biased, I believe our method is better. One of the larger differences is your decision to add the abstract class NameSignatureMethod between FieldOrMethod and CPInstruction and then have InvokeDynamic extend from that instead of from InvokeInstruction. To me this seems wrong. In addition to forcing InvokeDynamic to duplicate all the methods from InvokeInstruction and FieldOrMethod, it is awkward that it is the only form of the Invoke Instruction that doesn't derive from InvokeInstruction.

      This patch also includes several methods missing from the current implementation: alternative initializers, toString, and support for the Visitor paradigm.

      There are bug fixes to Constants.java and InstructionFinder.java as well.

      Attachments

        1. counter.diff
          0.6 kB
          Mark Roberts
        2. invoke4.diff
          52 kB
          Mark Roberts

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            chonton Charles Honton
            markro Mark Roberts
            Votes:
            2 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment