protected UnresolvedXField(FieldDescriptor m) { super(m.getClassDescriptor().getDottedClassName(), m.getName(), m.getSignature(), m.isStatic() ? Const.ACC_STATIC : 0); if (m.getSignature().charAt(0) == '(') { throw new IllegalArgumentException("Bad signature: " + m.getSignature()); } if (XFactory.DEBUG_UNRESOLVED) { System.out.println("Unresolved xmethod: " + this); } }
@Override protected void writeKey(Writer writer, FieldDescriptor key) throws IOException { writer.write(key.getClassDescriptor().getDottedClassName()); writer.write(","); writer.write(key.getName()); writer.write(","); writer.write(key.getSignature()); writer.write(","); XField xField = XFactory.createXField(key); int flags = xField.getAccessFlags() & 0xf; writer.write(String.valueOf(flags)); }
public int getIndex(FieldDescriptor f) { Integer i = addedFields.get(f); if (i != null) { return i; } int index = cpg.addFieldref(f.getSlashedClassName(), f.getName(), f.getSignature()); addedFields.put(f, index); return index; } public void optimize(InstructionList instructionList) {
@Override public String toString() { return (isStatic() ? "static " : "") + getClassDescriptor().getDottedClassName() + "." + getName() + " " + getSignature(); }
/** * Factory method. Construct from a FieldDescriptor. * * @param fieldDescriptor * the FieldDescriptor * @return the FieldAnnotation */ public static FieldAnnotation fromFieldDescriptor(FieldDescriptor fieldDescriptor) { return new FieldAnnotation(fieldDescriptor.getClassDescriptor().getDottedClassName(), fieldDescriptor.getName(), fieldDescriptor.getSignature(), fieldDescriptor.isStatic()); }
public void purgeBoringEntries() { Collection<FieldDescriptor> keys = new ArrayList<>(getKeys()); for (FieldDescriptor f : keys) { FieldStoreType type = getProperty(f); Type fieldType = Type.getType(f.getSignature()); if (!(fieldType instanceof ReferenceType)) { removeProperty(f); continue; } ReferenceType storeType = type.getLoadType((ReferenceType) fieldType); if (storeType.equals(fieldType)) { removeProperty(f); } } }
ClassDescriptor d = worklist.removeFirst(); if (!d.equals(originalClassDescriptor)) { desc = DescriptorFactory.instance().getFieldDescriptor(d.getClassName(), desc.getName(), desc.getSignature(), desc.isStatic());
String dottedClass = DeepSubtypeAnalysis.getComponentClass(fieldInfo.getSignature()); JavaClass fieldClass = Repository.lookupClass(dottedClass); if (fieldClass != null && fieldClass.instanceOf(bundleClass)) {
protected UnresolvedXField(FieldDescriptor m) { super(m.getClassDescriptor().getDottedClassName(), m.getName(), m.getSignature(), m.isStatic() ? Constants.ACC_STATIC : 0); if (m.getSignature().charAt(0) == '(') { throw new IllegalArgumentException("Bad signature: " + m.getSignature()); } if (XFactory.DEBUG_UNRESOLVED) { System.out.println("Unresolved xmethod: " + this); } }
@Override protected void writeKey(Writer writer, FieldDescriptor key) throws IOException { writer.write(key.getClassDescriptor().getDottedClassName()); writer.write(","); writer.write(key.getName()); writer.write(","); writer.write(key.getSignature()); writer.write(","); XField xField = XFactory.createXField(key); int flags = xField.getAccessFlags() & 0xf; writer.write(String.valueOf(flags)); }
public int getIndex(FieldDescriptor f) { Integer i = addedFields.get(f); if (i != null) { return i; } int index = cpg.addFieldref(f.getSlashedClassName(), f.getName(), f.getSignature()); addedFields.put(f, index); return index; } public void optimize(InstructionList instructionList) {
public void purgeBoringEntries() { Collection<FieldDescriptor> keys = new ArrayList<FieldDescriptor>(getKeys()); for (FieldDescriptor f : keys) { String s = f.getSignature(); FieldStoreType type = getProperty(f); Type fieldType = Type.getType(f.getSignature()); if (!(fieldType instanceof ReferenceType)) { removeProperty(f); continue; } ReferenceType storeType = type.getLoadType((ReferenceType) fieldType); if (storeType.equals(fieldType)) { removeProperty(f); } } }
@Override public String toString() { return (isStatic() ? "static " : "") + getClassDescriptor().getDottedClassName() + "." + getName() + " " + getSignature(); }
/** * Factory method. Construct from a FieldDescriptor. * * @param fieldDescriptor * the FieldDescriptor * @return the FieldAnnotation */ public static FieldAnnotation fromFieldDescriptor(FieldDescriptor fieldDescriptor) { return new FieldAnnotation(fieldDescriptor.getClassDescriptor().getDottedClassName(), fieldDescriptor.getName(), fieldDescriptor.getSignature(), fieldDescriptor.isStatic()); }
ClassDescriptor d = worklist.removeFirst(); if (!d.equals(originalClassDescriptor)) { desc = DescriptorFactory.instance().getFieldDescriptor(d.getClassName(), desc.getName(), desc.getSignature(), desc.isStatic());
String dottedClass = DeepSubtypeAnalysis.getComponentClass(fieldInfo.getSignature()); JavaClass fieldClass = Repository.lookupClass(dottedClass); if (fieldClass != null && fieldClass.instanceOf(bundleClass)) {