private boolean matchField()

in bytekit-core/src/main/java/com/alibaba/bytekit/asm/location/FieldAccessLocationMatcher.java [63:94]


    private boolean matchField(FieldInsnNode fieldInsnNode) {
        if (!fieldName.equals(fieldInsnNode.name)) {
            return false;
        }

        if (this.fieldDesc != null && !this.fieldDesc.equals(fieldInsnNode.desc)) {
            return false;
        }

        switch (fieldInsnNode.getOpcode()) {
        case Opcodes.GETSTATIC:
        case Opcodes.GETFIELD: {
            if ((flags & Location.ACCESS_READ) == 0) {
                return false;
            }
        }
            break;
        case Opcodes.PUTSTATIC:
        case Opcodes.PUTFIELD: {
            if ((flags & Location.ACCESS_WRITE) == 0) {
                return false;
            }
        }
            break;
        }
        if (ownerClass != null) {
            if (!ownerClass.equals(fieldInsnNode.owner)) {
                return false;
            }
        }
        return true;
    }