Examples of FieldReference


Examples of org.eclipse.jdt.internal.compiler.ast.FieldReference

   * @see BindingResolver#resolveField(FieldAccess)
   */
  synchronized IVariableBinding resolveField(FieldAccess fieldAccess) {
    Object oldNode = this.newAstToOldAst.get(fieldAccess);
    if (oldNode instanceof FieldReference) {
      FieldReference fieldReference = (FieldReference) oldNode;
      return this.getVariableBinding(fieldReference.binding);
    }
    return null;
  }
View Full Code Here

Examples of org.eclipse.jdt.internal.compiler.ast.FieldReference

   * @see BindingResolver#resolveField(SuperFieldAccess)
   */
  synchronized IVariableBinding resolveField(SuperFieldAccess fieldAccess) {
    Object oldNode = this.newAstToOldAst.get(fieldAccess);
    if (oldNode instanceof FieldReference) {
      FieldReference fieldReference = (FieldReference) oldNode;
      return this.getVariableBinding(fieldReference.binding);
    }
    return null;
  }
View Full Code Here

Examples of org.eclipse.jdt.internal.compiler.ast.FieldReference

private int nodeSourceStart(Binding field, ASTNode node) {
  return nodeSourceStart(field, node, 0);
}
private int nodeSourceStart(Binding field, ASTNode node, int index) {
  if (node instanceof FieldReference) {
    FieldReference fieldReference = (FieldReference) node;
    return (int) (fieldReference.nameSourcePosition >> 32);
  } else   if (node instanceof QualifiedNameReference) {
    QualifiedNameReference ref = (QualifiedNameReference) node;
    if (ref.binding == field) {
      if (index == 0) {
View Full Code Here

Examples of org.jf.dexlib2.iface.reference.FieldReference

                                    return null;
                                }

                                DexBackedField item = new DexBackedField(reader, DexBackedClassDef.this,
                                        previousIndex, staticInitialValueIterator, annotationIterator);
                                FieldReference currentField = previousField;
                                FieldReference nextField = ImmutableFieldReference.of(item);

                                previousField = nextField;
                                previousIndex = item.fieldIndex;

                                if (skipDuplicates && currentField != null && currentField.equals(nextField)) {
View Full Code Here

Examples of org.jf.dexlib2.iface.reference.FieldReference

                                    return null;
                                }

                                DexBackedField item = new DexBackedField(reader, DexBackedClassDef.this,
                                        previousIndex, annotationIterator);
                                FieldReference currentField = previousField;
                                FieldReference nextField = ImmutableFieldReference.of(item);

                                previousField = nextField;
                                previousIndex = item.fieldIndex;

                                if (skipDuplicates && currentField != null && currentField.equals(nextField)) {
View Full Code Here

Examples of org.jf.dexlib2.iface.reference.FieldReference

    }

    @Override
    public boolean equals(@Nullable Object o) {
        if (o instanceof FieldReference) {
            FieldReference other = (FieldReference)o;
            return getDefiningClass().equals(other.getDefiningClass()) &&
                   getName().equals(other.getName()) &&
                   getType().equals(other.getType());

        }
        return false;
    }
View Full Code Here

Examples of org.jf.dexlib2.iface.reference.FieldReference

                            case SPUT_CHAR:
                            case SPUT_OBJECT:
                            case SPUT_SHORT:
                            case SPUT_WIDE: {
                                Instruction21c ins = (Instruction21c)instruction;
                                FieldReference fieldRef = null;
                                try {
                                    fieldRef = (FieldReference)ins.getReference();
                                } catch (InvalidItemIndex ex) {
                                    // just ignore it for now. We'll deal with it later, when processing the instructions
                                    // themselves
                                }
                                if (fieldRef != null &&
                                        fieldRef.getDefiningClass().equals((classDef.getType()))) {
                                    fieldsSetInStaticConstructor.add(ReferenceUtil.getShortFieldDescriptor(fieldRef));
                                }
                                break;
                            }
                        }
View Full Code Here

Examples of org.jf.dexlib2.iface.reference.FieldReference

        List<Instruction> instructions = Lists.newArrayList(methodImpl.getInstructions());

        Instruction21c instruction = (Instruction21c)instructions.get(0);
        Assert.assertNotNull(instruction);
        Assert.assertEquals(Opcode.SGET_OBJECT, instruction.getOpcode());
        FieldReference field = (FieldReference)instruction.getReference();
        Assert.assertEquals(classDef.getType(), field.getDefiningClass());
        Assert.assertEquals("someField", field.getName());

        instruction = (Instruction21c)instructions.get(1);
        Assert.assertNotNull(instruction);
        Assert.assertEquals(Opcode.SGET_OBJECT, instruction.getOpcode());
        field = (FieldReference)instruction.getReference();
        Assert.assertEquals(classDef.getType(), field.getDefiningClass());
        Assert.assertEquals("V", field.getName());

        instruction = (Instruction21c)instructions.get(2);
        Assert.assertNotNull(instruction);
        Assert.assertEquals(Opcode.SGET_OBJECT, instruction.getOpcode());
        field = (FieldReference)instruction.getReference();
        Assert.assertEquals(classDef.getType(), field.getDefiningClass());
        Assert.assertEquals("I", field.getName());
    }
View Full Code Here

Examples of org.jf.dexlib2.iface.reference.FieldReference

            return 8;
        }

        int lastItemIndex = instanceFields.size()-1;
        int fieldOffset = instanceFields.keyAt(lastItemIndex);
        FieldReference lastField = instanceFields.valueAt(lastItemIndex);

        switch (lastField.getType().charAt(0)) {
            case 'J':
            case 'D':
                return fieldOffset + 8;
            default:
                return fieldOffset + 4;
View Full Code Here

Examples of org.jf.dexlib2.iface.reference.FieldReference

    }

    private void analyzeIgetSgetWideObject(@Nonnull AnalyzedInstruction analyzedInstruction) {
        ReferenceInstruction referenceInstruction = (ReferenceInstruction)analyzedInstruction.instruction;

        FieldReference fieldReference = (FieldReference)referenceInstruction.getReference();

        RegisterType fieldType = RegisterType.getRegisterType(classPath, fieldReference.getType());
        setDestinationRegisterTypeAndPropagateChanges(analyzedInstruction, fieldType);
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.