static String isField(ClassPool pool, ConstPool cp, CtClass fclass, String fname, boolean is_private, int index) { if (!cp.getFieldrefName(index).equals(fname)) return null; try { CtClass c = pool.get(cp.getFieldrefClassName(index)); if (c == fclass || (!is_private && isFieldInSuper(c, fclass, fname))) return cp.getFieldrefType(index); } catch (NotFoundException e) {} return null; }
private static String fieldInfo(ConstPool pool, int index) { return "#" + index + " = Field " + pool.getFieldrefClassName(index) + "." + pool.getFieldrefName(index) + "(" + pool.getFieldrefType(index) + ")"; }
/** * Returns the signature of the field type. * The signature is represented by a character string * called field descriptor, which is defined in the JVM specification. * * @see javassist.bytecode.Descriptor#toCtClass(String, ClassPool) * @since 3.1 */ public String getSignature() { int index = iterator.u16bitAt(currentPos + 1); return getConstPool().getFieldrefType(index); }
private int getFieldSize(CodeIterator ci, int index) { String desc = constPool.getFieldrefType(ci.u16bitAt(index + 1)); return Descriptor.dataSize(desc); } }
private int getFieldSize(CodeIterator ci, int index) { String desc = constPool.getFieldrefType(ci.u16bitAt(index + 1)); return Descriptor.dataSize(desc); } }
private static String fieldInfo(ConstPool pool, int index) { return "#" + index + " = Field " + pool.getFieldrefClassName(index) + "." + pool.getFieldrefName(index) + "(" + pool.getFieldrefType(index) + ")"; }
/** * Returns the signature of the field type. * The signature is represented by a character string * called field descriptor, which is defined in the JVM specification. * * @see javassist.bytecode.Descriptor#toCtClass(String, ClassPool) * @since 3.1 */ public String getSignature() { int index = iterator.u16bitAt(currentPos + 1); return getConstPool().getFieldrefType(index); }
static String isField(ClassPool pool, ConstPool cp, CtClass fclass, String fname, boolean is_private, int index) { if (!cp.getFieldrefName(index).equals(fname)) return null; try { CtClass c = pool.get(cp.getFieldrefClassName(index)); if (c == fclass || (!is_private && isFieldInSuper(c, fclass, fname))) return cp.getFieldrefType(index); } catch (NotFoundException e) {} return null; }
private int doGetField(int pos, byte[] code, boolean notStatic) throws BadBytecode { int index = ByteArray.readU16bit(code, pos + 1); setFieldTarget(notStatic, index); String desc = cpool.getFieldrefType(index); pushMemberType(desc); return 3; }
private int doPutField(int pos, byte[] code, boolean notStatic) throws BadBytecode { int index = ByteArray.readU16bit(code, pos + 1); String desc = cpool.getFieldrefType(index); stackTop -= Descriptor.dataSize(desc); char c = desc.charAt(0); if (c == 'L') stackTypes[stackTop].setType(getFieldClassName(desc, 0), classPool); else if (c == '[') stackTypes[stackTop].setType(desc, classPool); setFieldTarget(notStatic, index); return 3; }
private int doGetField(int pos, byte[] code, boolean notStatic) throws BadBytecode { int index = ByteArray.readU16bit(code, pos + 1); setFieldTarget(notStatic, index); String desc = cpool.getFieldrefType(index); pushMemberType(desc); return 3; }
/** * Returns the field accessed by this expression. */ public CtField getField() throws NotFoundException { CtClass cc = getCtClass(); int index = iterator.u16bitAt(currentPos + 1); ConstPool cp = getConstPool(); return cc.getField(cp.getFieldrefName(index), cp.getFieldrefType(index)); }
private int doPutField(int pos, byte[] code, boolean notStatic) throws BadBytecode { int index = ByteArray.readU16bit(code, pos + 1); String desc = cpool.getFieldrefType(index); stackTop -= Descriptor.dataSize(desc); char c = desc.charAt(0); if (c == 'L') stackTypes[stackTop].setType(getFieldClassName(desc, 0), classPool); else if (c == '[') stackTypes[stackTop].setType(desc, classPool); setFieldTarget(notStatic, index); return 3; }
/** * Returns the field accessed by this expression. */ public CtField getField() throws NotFoundException { CtClass cc = getCtClass(); int index = iterator.u16bitAt(currentPos + 1); ConstPool cp = getConstPool(); return cc.getField(cp.getFieldrefName(index), cp.getFieldrefType(index)); }
private void evalGetField(int opcode, int index, Frame frame) throws BadBytecode { String desc = constPool.getFieldrefType(index); Type type = zeroExtend(typeFromDesc(desc)); if (opcode == GETFIELD) { Type objectType = resolveClassInfo(constPool.getFieldrefClassName(index)); verifyAssignable(objectType, simplePop(frame)); } simplePush(type, frame); }
private void evalPutField(int opcode, int index, Frame frame) throws BadBytecode { String desc = constPool.getFieldrefType(index); Type type = zeroExtend(typeFromDesc(desc)); verifyAssignable(type, simplePop(frame)); if (opcode == PUTFIELD) { Type objectType = resolveClassInfo(constPool.getFieldrefClassName(index)); verifyAssignable(objectType, simplePop(frame)); } }
private void evalGetField(int opcode, int index, Frame frame) throws BadBytecode { String desc = constPool.getFieldrefType(index); Type type = zeroExtend(typeFromDesc(desc)); if (opcode == GETFIELD) { Type objectType = resolveClassInfo(constPool.getFieldrefClassName(index)); verifyAssignable(objectType, simplePop(frame)); } simplePush(type, frame); }
private void evalPutField(int opcode, int index, Frame frame) throws BadBytecode { String desc = constPool.getFieldrefType(index); Type type = zeroExtend(typeFromDesc(desc)); verifyAssignable(type, simplePop(frame)); if (opcode == PUTFIELD) { Type objectType = resolveClassInfo(constPool.getFieldrefClassName(index)); verifyAssignable(objectType, simplePop(frame)); } }
constPool.addClassInfo( fieldClassName ), EnhancerConstants.PERSISTENT_FIELD_READER_PREFIX + fieldName, "()" + constPool.getFieldrefType( itr.u16bitAt( index + 1 ) ) ); itr.writeByte( Opcode.INVOKEVIRTUAL, index ); constPool.addClassInfo( fieldClassName ), EnhancerConstants.PERSISTENT_FIELD_WRITER_PREFIX + fieldName, "(" + constPool.getFieldrefType( itr.u16bitAt( index + 1 ) ) + ")V" ); itr.writeByte( Opcode.INVOKEVIRTUAL, index );
CtClass retType; CtClass fieldType = Descriptor.toCtClass(constPool.getFieldrefType(index), thisClass.getClassPool()); boolean read = isReader();