65 import jdk.internal.org.objectweb.asm.Type;
66 import jdk.internal.org.objectweb.asm.tree.AbstractInsnNode;
67 import jdk.internal.org.objectweb.asm.tree.FieldInsnNode;
68 import jdk.internal.org.objectweb.asm.tree.IntInsnNode;
69 import jdk.internal.org.objectweb.asm.tree.InvokeDynamicInsnNode;
70 import jdk.internal.org.objectweb.asm.tree.LdcInsnNode;
71 import jdk.internal.org.objectweb.asm.tree.MethodInsnNode;
72 import jdk.internal.org.objectweb.asm.tree.MultiANewArrayInsnNode;
73 import jdk.internal.org.objectweb.asm.tree.TypeInsnNode;
74
75 /**
76 * An {@link Interpreter} for {@link BasicValue} values.
77 *
78 * @author Eric Bruneton
79 * @author Bing Ran
80 */
81 public class BasicInterpreter extends Interpreter<BasicValue> implements
82 Opcodes {
83
84 public BasicInterpreter() {
85 super(ASM5);
86 }
87
88 protected BasicInterpreter(final int api) {
89 super(api);
90 }
91
92 @Override
93 public BasicValue newValue(final Type type) {
94 if (type == null) {
95 return BasicValue.UNINITIALIZED_VALUE;
96 }
97 switch (type.getSort()) {
98 case Type.VOID:
99 return null;
100 case Type.BOOLEAN:
101 case Type.CHAR:
102 case Type.BYTE:
103 case Type.SHORT:
104 case Type.INT:
105 return BasicValue.INT_VALUE;
|
65 import jdk.internal.org.objectweb.asm.Type;
66 import jdk.internal.org.objectweb.asm.tree.AbstractInsnNode;
67 import jdk.internal.org.objectweb.asm.tree.FieldInsnNode;
68 import jdk.internal.org.objectweb.asm.tree.IntInsnNode;
69 import jdk.internal.org.objectweb.asm.tree.InvokeDynamicInsnNode;
70 import jdk.internal.org.objectweb.asm.tree.LdcInsnNode;
71 import jdk.internal.org.objectweb.asm.tree.MethodInsnNode;
72 import jdk.internal.org.objectweb.asm.tree.MultiANewArrayInsnNode;
73 import jdk.internal.org.objectweb.asm.tree.TypeInsnNode;
74
75 /**
76 * An {@link Interpreter} for {@link BasicValue} values.
77 *
78 * @author Eric Bruneton
79 * @author Bing Ran
80 */
81 public class BasicInterpreter extends Interpreter<BasicValue> implements
82 Opcodes {
83
84 public BasicInterpreter() {
85 super(ASM6);
86 }
87
88 protected BasicInterpreter(final int api) {
89 super(api);
90 }
91
92 @Override
93 public BasicValue newValue(final Type type) {
94 if (type == null) {
95 return BasicValue.UNINITIALIZED_VALUE;
96 }
97 switch (type.getSort()) {
98 case Type.VOID:
99 return null;
100 case Type.BOOLEAN:
101 case Type.CHAR:
102 case Type.BYTE:
103 case Type.SHORT:
104 case Type.INT:
105 return BasicValue.INT_VALUE;
|