字节码:LOOKUPSWITCH和TABLESWITCH
-
24-09-2019 - |
题
我目前使用BCEL插装字节码。在BCEL API,所述两个指令类型LOOKUPSWITCH
和TABLESWITCH
(package org.apache.bcel.generic
)正在执行接口StackProducer
。我知道这两个指令弹出操作数堆栈(即使用它),不要在栈上生产任何东西,怎么让他们实现StackProducer
代替StackConsumer
?这是一个错误?谢谢
(PS:我试过后没有答案,我希望我会在这里找到更多的运气了BCEL邮件列表在这个问题上。)
解决方案
这是一个错误。但它已得到修复前一阵子了。
tree:generic jbevain$ svn log -c 1081190 && svn diff -c 1081190
------------------------------------------------------------------------
r1081190 | dbrosius | 2011-03-13 19:41:20 +0100 (Sun, 13 Mar 2011) | 1 line
Bug 48908 - Select instructions should implement StackConsumer instead of StackProducer
------------------------------------------------------------------------
Index: Select.java
===================================================================
--- Select.java (revision 1081189)
+++ Select.java (revision 1081190)
@@ -33,7 +33,7 @@
* @see InstructionList
*/
public abstract class Select extends BranchInstruction implements VariableLengthInstruction,
- StackProducer {
+ StackConsumer {
private static final long serialVersionUID = 2806771744559217250L;
protected int[] match; // matches, i.e., case 1: ...
Select
为LOOKUPSWITCH
和TABLESWITCH
的基类。
不隶属于 StackOverflow