Bytecode: LOOKUPSWITCH y TABLESWITCH
-
24-09-2019 - |
Pregunta
Actualmente estoy usando la instrumentación de código de bytes BCEL. En la API BCEL, los dos tipos de instrucciones LOOKUPSWITCH
y TABLESWITCH
(package org.apache.bcel.generic
) están implementando StackProducer
interfaz. Sé que estas dos instrucciones estallar la pila de operandos (es decir, la consumen) y no producen nada en la pila, así que ¿cómo es que implementan StackProducer
en lugar de StackConsumer
? Es esto un error? Gracias
(PS: He intentado publicar esta pregunta en la lista de correo BCEL sin respuesta espero que encontraré más suerte aquí.)
Solución
Fue un error . Pero se ha fijado hace algún tiempo.
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
es la clase base para LOOKUPSWITCH
y TABLESWITCH
.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow