DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=35405>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=35405

           Summary: Branch target offset too large for short
           Product: BCEL
           Version: 5.1
          Platform: Other
        OS/Version: Windows 2000
            Status: NEW
          Severity: blocker
          Priority: P1
         Component: Main
        AssignedTo: bcel-dev@jakarta.apache.org
        ReportedBy: [EMAIL PROTECTED]


We are using bcel library for code generation. And for some particualr scenarios
our method size is exceeding the method size limit defined by java (65535 bytes)
and we get the following error,

org.apache.bcel.generic.ClassGenException: Branch target offset too large for 
short
        at 
org.apache.bcel.generic.BranchInstruction.dump(BranchInstruction.java:100)
        at 
org.apache.bcel.generic.InstructionList.getByteCode(InstructionList.java:980)
        at org.apache.bcel.generic.MethodGen.getMethod(MethodGen.java:616)
When the method size limit is defined in java as 65535, why does the BCEL gives
an error for 32767, in
org.apache.bcel.generic.BranchInstruction.dump(DataOutputStream out) the check
is for,

if(Math.abs(index) >= 32767) // too large for short
      throw new ClassGenException("Branch target offset too large for short");

why not instead have the if(Math.abs(index) >= 65535)

I tried this and then my application works fine, I want to be sure if thats the
right approach.

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to