@Override public void initContent(DataInputFullStream data, ConstantPool pool) throws IOException { int method_number = data.readUnsignedShort(); for (int i = 0; i < method_number; ++i) { int bootstrap_method_ref = data.readUnsignedShort(); int num_bootstrap_arguments = data.readUnsignedShort(); List<PooledConstant> list_arguments = new ArrayList<>(); for (int j = 0; j < num_bootstrap_arguments; ++j) { int bootstrap_argument_ref = data.readUnsignedShort(); list_arguments.add(pool.getConstant(bootstrap_argument_ref)); } methodRefs.add(pool.getLinkConstant(bootstrap_method_ref)); methodArguments.add(list_arguments); } }
@Override public void initContent(DataInputFullStream data, ConstantPool pool) throws IOException { int classIndex = data.readUnsignedShort(); int methodIndex = data.readUnsignedShort(); className = pool.getPrimitiveConstant(classIndex).getString(); if (methodIndex != 0) { LinkConstant lk = pool.getLinkConstant(methodIndex); methodName = lk.elementname; methodDescriptor = lk.descriptor; } }
@Override public void resolveConstant(ConstantPool pool) { if (type == CONSTANT_NameAndType) { elementname = pool.getPrimitiveConstant(index1).getString(); descriptor = pool.getPrimitiveConstant(index2).getString(); } else if (type == CONSTANT_MethodHandle) { LinkConstant ref_info = pool.getLinkConstant(index2); classname = ref_info.classname; elementname = ref_info.elementname; descriptor = ref_info.descriptor; } else { if (type != CONSTANT_InvokeDynamic) { classname = pool.getPrimitiveConstant(index1).getString(); } LinkConstant nametype = pool.getLinkConstant(index2); elementname = nametype.elementname; descriptor = nametype.descriptor; } initConstant(); }
LinkConstant invoke_dynamic = cl.getPool().getLinkConstant(instr.operand(0));
case opc_getstatic: case opc_putstatic: if (cl.qualifiedName.equals(pool.getLinkConstant(instr.operand(0)).classname)) { refCounter++; refNotNew = true;
case opc_getfield: pushEx(stack, exprlist, new FieldExprent(pool.getLinkConstant(instr.operand(0)), instr.opcode == opc_getstatic ? null : stack.pop(), bytecode_offsets)); break; Exprent valfield = stack.pop(); Exprent exprfield = new FieldExprent(pool.getLinkConstant(instr.operand(0)), instr.opcode == opc_putstatic ? null : stack.pop(), bytecode_offsets); exprlist.add(new AssignmentExprent(exprfield, valfield, bytecode_offsets)); case opc_invokedynamic: if (instr.opcode != opc_invokedynamic || instr.bytecodeVersion >= CodeConstants.BYTECODE_JAVA_7) { LinkConstant invoke_constant = pool.getLinkConstant(instr.operand(0));
stack.pop(); case CodeConstants.opc_getstatic: ck = pool.getLinkConstant(instr.operand(0)); var1 = new VarType(ck.descriptor); stack.push(var1); stack.pop(); case CodeConstants.opc_putstatic: ck = pool.getLinkConstant(instr.operand(0)); var1 = new VarType(ck.descriptor); stack.pop(var1.stackSize); case CodeConstants.opc_invokedynamic: if (instr.opcode != CodeConstants.opc_invokedynamic || instr.bytecodeVersion >= CodeConstants.BYTECODE_JAVA_7) { ck = pool.getLinkConstant(instr.operand(0)); MethodDescriptor md = MethodDescriptor.parseDescriptor(ck.descriptor); for (int i = 0; i < md.params.length; i++) {
@Override public void initContent(DataInputFullStream data, ConstantPool pool) throws IOException { int method_number = data.readUnsignedShort(); for (int i = 0; i < method_number; ++i) { int bootstrap_method_ref = data.readUnsignedShort(); int num_bootstrap_arguments = data.readUnsignedShort(); List<PooledConstant> list_arguments = new ArrayList<>(); for (int j = 0; j < num_bootstrap_arguments; ++j) { int bootstrap_argument_ref = data.readUnsignedShort(); list_arguments.add(pool.getConstant(bootstrap_argument_ref)); } methodRefs.add(pool.getLinkConstant(bootstrap_method_ref)); methodArguments.add(list_arguments); } }
@Override public void initContent(DataInputFullStream data, ConstantPool pool) throws IOException { int classIndex = data.readUnsignedShort(); int methodIndex = data.readUnsignedShort(); className = pool.getPrimitiveConstant(classIndex).getString(); if (methodIndex != 0) { LinkConstant lk = pool.getLinkConstant(methodIndex); methodName = lk.elementname; methodDescriptor = lk.descriptor; } }
public void resolveConstant(ConstantPool pool) { if (type == CONSTANT_NameAndType) { elementname = pool.getPrimitiveConstant(index1).getString(); descriptor = pool.getPrimitiveConstant(index2).getString(); } else if (type == CONSTANT_MethodHandle) { LinkConstant ref_info = pool.getLinkConstant(index2); classname = ref_info.classname; elementname = ref_info.elementname; descriptor = ref_info.descriptor; } else { if (type != CONSTANT_InvokeDynamic) { classname = pool.getPrimitiveConstant(index1).getString(); } LinkConstant nametype = pool.getLinkConstant(index2); elementname = nametype.elementname; descriptor = nametype.descriptor; } initConstant(); }
LinkConstant invoke_dynamic = cl.getPool().getLinkConstant(instr.getOperand(0));
case opc_getfield: pushEx(stack, exprlist, new FieldExprent(pool.getLinkConstant(instr.getOperand(0)), instr.opcode == opc_getstatic ? null : stack.pop(), bytecode_offsets)); break; Exprent valfield = stack.pop(); Exprent exprfield = new FieldExprent(pool.getLinkConstant(instr.getOperand(0)), instr.opcode == opc_putstatic ? null : stack.pop(), bytecode_offsets); exprlist.add(new AssignmentExprent(exprfield, valfield, bytecode_offsets)); case opc_invokedynamic: if (instr.opcode != opc_invokedynamic || instr.bytecode_version >= CodeConstants.BYTECODE_JAVA_7) { LinkConstant invoke_constant = pool.getLinkConstant(instr.getOperand(0));
stack.pop(); case CodeConstants.opc_getstatic: ck = pool.getLinkConstant(instr.getOperand(0)); var1 = new VarType(ck.descriptor); stack.push(var1); stack.pop(); case CodeConstants.opc_putstatic: ck = pool.getLinkConstant(instr.getOperand(0)); var1 = new VarType(ck.descriptor); stack.pop(var1.stackSize); case CodeConstants.opc_invokedynamic: if (instr.opcode != CodeConstants.opc_invokedynamic || instr.bytecode_version >= CodeConstants.BYTECODE_JAVA_7) { ck = pool.getLinkConstant(instr.getOperand(0)); MethodDescriptor md = MethodDescriptor.parseDescriptor(ck.descriptor); for (int i = 0; i < md.params.length; i++) {