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

Compiling try-finally within code size limit

    Details

    • Subcomponent:
    • Understanding:
      Fix Understood
    • CPU:
      generic
    • OS:
      generic

      Description

      The amount of code per method is limited to 64K bytes by the sizes of the indices
      in the exception_table of the Code attribute, in the LineNumberTable attribute,
      in the LocalVariableTable attribute, and in the StackMapTable attribute (JVMS 2nd
      edition 4.10).

      After inlining subroutine code (4640034), some applications with extreme styles
      such as deeply nested finally blocks, or huge amount of exiting paths in try or
      synchronized blocks, would fail to compile because code size exceeds limit.
      It was temporarily fixed in JDK 1.4.2 by introducing a command-line flag to
      control how much inlining happens for finally blocks (4739388). After jsr/ret
      instructions are eliminated in JDK 6, the above workaround will no longer work.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                wtaosunw Wei Tao (Inactive)
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Imported:
                  Indexed: