4

現在、BCEL を使用してバイトコードを計測しています。BCEL API では、2 つの命令タイプLOOKUPSWITCHTABLESWITCH( package org.apache.bcel.generic) が interface を実装していますStackProducer。これらの 2 つの命令はオペランド スタックをポップ (つまり、それを消費) し、スタック上に何も生成しないことを知っていStackProducerますStackConsumer。これはバグですか?ありがとうございました

(ps: この質問を BCEL メーリング リストに投稿しようとしましたが、回答がありませんでした。ここでもっと幸運が訪れることを願っています)

4

1 に答える 1

3

バグでした。しかし、それは少し前に修正されました。

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: ...

SelectLOOKUPSWITCHとの基本クラスですTABLESWITCH

于 2012-10-05T06:56:34.583 に答える