我目前使用BCEL插装字节码。在BCEL API,所述两个指令类型LOOKUPSWITCHTABLESWITCHpackage 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: ...

SelectLOOKUPSWITCHTABLESWITCH的基类。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top