< prev index next >
jdk/src/java.base/share/classes/jdk/experimental/bytecode/CodeBuilder.java
Print this page
rev 14083 : vwithfield class/field access
@@ -80,10 +80,16 @@
emitOp(Opcode.PUTFIELD, type);
code.writeChar(poolHelper.putFieldRef(owner, name, type));
return thisBuilder();
}
+ public C vwithfield(S owner, CharSequence name, T type) {
+ emitOp(Opcode.VWITHFIELD, type);
+ code.writeChar(poolHelper.putFieldRef(owner, name, type));
+ return thisBuilder();
+ }
+
public C invokevirtual(S owner, CharSequence name, T type, boolean isInterface) {
emitOp(Opcode.INVOKEVIRTUAL, type);
code.writeChar(poolHelper.putMethodRef(owner, name, type, isInterface));
return thisBuilder();
}
@@ -127,10 +133,16 @@
emitOp(Opcode.VNEW, clazz);
code.writeChar(poolHelper.putMethodRef(clazz, name, desc, false));
return thisBuilder();
}
+ public C vdefault(S target) {
+ emitOp(Opcode.VDEFAULT, target);
+ code.writeChar(poolHelper.putClass(target));
+ return thisBuilder();
+ }
+
public C newarray(TypeTag tag) {
emitOp(Opcode.NEWARRAY, tag);
int newarraycode = tag.newarraycode;
if (newarraycode == -1) {
throw new IllegalStateException("Bad tag " + tag);
< prev index next >