Frage

Ich bin derzeit instrumentiert Bytecode BCEL verwenden. In der BCEL API, die beiden Befehle Typen LOOKUPSWITCH und TABLESWITCH (package org.apache.bcel.generic) implementieren Schnittstelle StackProducer. Ich weiß, dass diese beiden Anweisungen, um die Operanden-Stack pop (das heißt, sie verbrauchen) und produzieren nicht alles auf dem Stack, so wie kommt implementieren sie StackProducer statt StackConsumer? Ist das ein Fehler? Danke

(ps: Ich habe versucht, diese Frage auf der BCEL Mailing-Liste zu schreiben, ohne Antwort, die ich hoffe, dass ich mehr Glück finden Sie hier.)

War es hilfreich?

Lösung

Es war ein Fehler . Aber es wurde vor nun eine Weile festgelegt.

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 ist die Basisklasse für LOOKUPSWITCH und TABLESWITCH.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top