[jboss-jira] [JBoss JIRA] Closed: (JASSIST-71) Array access replacement generates invalid bytecode when padding is required
Shigeru Chiba (JIRA)
jira-events at lists.jboss.org
Thu Apr 15 10:57:25 EDT 2010
[ https://jira.jboss.org/jira/browse/JASSIST-71?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Shigeru Chiba closed JASSIST-71.
--------------------------------
> Array access replacement generates invalid bytecode when padding is required
> ----------------------------------------------------------------------------
>
> Key: JASSIST-71
> URL: https://jira.jboss.org/jira/browse/JASSIST-71
> Project: Javassist
> Issue Type: Bug
> Reporter: Jason T. Greene
> Assignee: Shigeru Chiba
>
> When an array access instruction is replaced before a switch instruction, and padding is added to align the switch, the array instruction remains, which is invalid:
> public void test();
> Code:
> Stack=2, Locals=2, Args_size=1
> 0: aconst_null
> 1: astore_1
> 2: invokestatic #17; //Method $SWITCH_TABLE$RULE_TYPE:()[I
> 5: aload_1
> 6: invokevirtual #20; //Method RULE_TYPE.ordinal:()I
> 9: invokestatic #67; //Method arrayReadInt:(Ljava/lang/Object;I)I
> 12: nop
> 13: iaload <=========================== INVALID!!!!!!!!!!!!
> 14: tableswitch{ //1 to 1
> 1: 32;
> default: 32 }
> 32: return
> This is typically caught by the bytecode verifier
> java.lang.VerifyError: (class: com/lm/dataModel/rules/StatusRule, method: propagateFromHereOnUpTree signature: (Lcom/lm/dataModel/ANode;Lcom/lm/dataModel/ANode$Source;Lcom/lm/dataModel/ANode$StatusValue;)Z) Unable to pop operand off an empty stack
> at com.lm.dataModel.ANode.setStatusValueWithPropagation(ANode.java:301)
> at com.lm.seem.StatusTableModel.setValueAt(StatusTableModel.java:133)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list