/** * Constructs an instance. * * @param definingClass {@code non-null;} the type of the defining class * @param nat {@code non-null;} the name-and-type */ /*package*/ CstBaseMethodRef(CstType definingClass, CstNat nat) { super(definingClass, nat); String descriptor = getNat().getDescriptor().getString(); if (isSignaturePolymorphic()) { // The prototype for signature polymorphic methods is used to // construct call-site information and select the true invocation // target (invoke() or invokeExact(). The prototype is created // without being interned to avoid polluting the DEX file with // unused data. this.prototype = Prototype.fromDescriptor(descriptor); } else { this.prototype = Prototype.intern(descriptor); } this.instancePrototype = null; }
/** * Constructs an instance. * * @param definingClass {@code non-null;} the type of the defining class * @param nat {@code non-null;} the name-and-type */ /*package*/ CstBaseMethodRef(CstType definingClass, CstNat nat) { super(definingClass, nat); String descriptor = getNat().getDescriptor().getString(); if (isSignaturePolymorphic()) { // The prototype for signature polymorphic methods is used to // construct call-site information and select the true invocation // target (invoke() or invokeExact(). The prototype is created // without being interned to avoid polluting the DEX file with // unused data. this.prototype = Prototype.fromDescriptor(descriptor); } else { this.prototype = Prototype.intern(descriptor); } this.instancePrototype = null; }