/** * Constructs an instance. * * @param definingClass {@code non-null;} the defining class * @param accessFlags access flags * @param nat {@code non-null;} member name and type (descriptor) * @param attributes {@code non-null;} list of associated attributes */ public StdMethod(CstType definingClass, int accessFlags, CstNat nat, AttributeList attributes) { super(definingClass, accessFlags, nat, attributes); String descStr = getDescriptor().getString(); effectiveDescriptor = Prototype.intern(descStr, definingClass.getClassType(), AccessFlags.isStatic(accessFlags), nat.isInstanceInit()); }
/** * Constructs an instance. * * @param definingClass {@code non-null;} the defining class * @param accessFlags access flags * @param nat {@code non-null;} member name and type (descriptor) * @param attributes {@code non-null;} list of associated attributes */ public StdMethod(CstType definingClass, int accessFlags, CstNat nat, AttributeList attributes) { super(definingClass, accessFlags, nat, attributes); String descStr = getDescriptor().getString(); effectiveDescriptor = Prototype.intern(descStr, definingClass.getClassType(), AccessFlags.isStatic(accessFlags), nat.isInstanceInit()); }
/** * Constructs an instance. * * @param definingClass {@code non-null;} the defining class * @param accessFlags access flags * @param nat {@code non-null;} member name and type (descriptor) * @param attributes {@code non-null;} list of associated attributes */ public StdMethod(CstType definingClass, int accessFlags, CstNat nat, AttributeList attributes) { super(definingClass, accessFlags, nat, attributes); String descStr = getDescriptor().getString(); effectiveDescriptor = Prototype.intern(descStr, definingClass.getClassType(), AccessFlags.isStatic(accessFlags), nat.isInstanceInit()); }
/** * Constructs an instance. * * @param definingClass {@code non-null;} the defining class * @param accessFlags access flags * @param nat {@code non-null;} member name and type (descriptor) * @param attributes {@code non-null;} list of associated attributes */ public StdMethod(CstType definingClass, int accessFlags, CstNat nat, AttributeList attributes) { super(definingClass, accessFlags, nat, attributes); String descStr = getDescriptor().getString(); effectiveDescriptor = Prototype.intern(descStr, definingClass.getClassType(), AccessFlags.isStatic(accessFlags), nat.isInstanceInit()); }
/** * Constructs an instance. * * @param definingClass {@code non-null;} the defining class * @param accessFlags access flags * @param nat {@code non-null;} member name and type (descriptor) * @param attributes {@code non-null;} list of associated attributes */ public StdMethod(CstType definingClass, int accessFlags, CstNat nat, AttributeList attributes) { super(definingClass, accessFlags, nat, attributes); String descStr = getDescriptor().getString(); effectiveDescriptor = Prototype.intern(descStr, definingClass.getClassType(), AccessFlags.isStatic(accessFlags), nat.isInstanceInit()); }
/** * Constructs an instance. * * @param definingClass {@code non-null;} the defining class * @param accessFlags access flags * @param nat {@code non-null;} member name and type (descriptor) * @param attributes {@code non-null;} list of associated attributes */ public StdMethod(CstType definingClass, int accessFlags, CstNat nat, AttributeList attributes) { super(definingClass, accessFlags, nat, attributes); String descStr = getDescriptor().getString(); effectiveDescriptor = Prototype.intern(descStr, definingClass.getClassType(), AccessFlags.isStatic(accessFlags), nat.isInstanceInit()); }
boolean isStatic = AccessFlags.isStatic(meth.getAccessFlags()); int paramWidth = computeParamWidth(meth, isStatic); rmeth =
boolean isStatic = AccessFlags.isStatic(meth.getAccessFlags()); rmeth = Optimizer.optimize(rmeth, BaseDumper.computeParamWidth(meth, isStatic), isStatic,
boolean isStatic = AccessFlags.isStatic(meth.getAccessFlags()); rmeth = Optimizer.optimize(rmeth, BaseDumper.computeParamWidth(meth, isStatic), isStatic,
boolean isStatic = AccessFlags.isStatic(meth.getAccessFlags()); rmeth = Optimizer.optimize(rmeth, BaseDumper.computeParamWidth(meth, isStatic), isStatic,
boolean isStatic = AccessFlags.isStatic(meth.getAccessFlags()); rmeth = Optimizer.optimize(rmeth, BaseDumper.computeParamWidth(meth, isStatic), isStatic,
boolean isStatic = AccessFlags.isStatic(meth.getAccessFlags()); rmeth = Optimizer.optimize(rmeth, BaseDumper.computeParamWidth(meth, isStatic), isStatic,
/** * Sets attributes in the element according to the access flags given. */ private static void processAccessFlags(int accessFlags, Element element) { boolean isStatic= AccessFlags.isStatic(accessFlags); boolean isPrivate= AccessFlags.isPrivate(accessFlags); boolean isPublic= AccessFlags.isPublic(accessFlags); boolean isNative= AccessFlags.isNative(accessFlags); boolean isAbstract= AccessFlags.isAbstract(accessFlags); boolean isSynthetic= AccessFlags.isSynthetic(accessFlags); boolean isInterface= AccessFlags.isInterface(accessFlags); setAttributeIfTrue(element, "isStatic", isStatic); setAttributeIfTrue(element, "isPrivate", isPrivate); setAttributeIfTrue(element, "isPublic", isPublic); setAttributeIfTrue(element, "isNative", isNative); setAttributeIfTrue(element, "isAbstract", isAbstract); setAttributeIfTrue(element, "isSynthetic", isSynthetic); setAttributeIfTrue(element, "isInterface", isInterface); }
/** * Extracts the code block from the given method of the given class, or * <code>null</code>, if method is native or abstract. */ private static DalvCode getCode(Method method, DirectClassFile classFile) { boolean isNative= AccessFlags.isNative(method.getAccessFlags()); boolean isStatic= AccessFlags.isStatic(method.getAccessFlags()); boolean isAbstract= AccessFlags.isAbstract(method.getAccessFlags()); if (isNative || isAbstract) { return null; } ConcreteMethod concrete= new ConcreteMethod(method, classFile, false, false); TranslationAdvice advice= DexTranslationAdvice.THE_ONE; RopMethod rmeth= Ropper.convert(concrete, advice); CstMethodRef meth= new CstMethodRef(method.getDefiningClass(), method.getNat()); int paramSize= meth.getParameterWordCount(isStatic); DalvCode code= RopTranslator.translate(rmeth, PositionList.NONE, null, paramSize); DalvCode.AssignIndicesCallback callback= new DalvCode.AssignIndicesCallback() { public int getIndex(Constant cst) { // Everything is at index 0! return 0; } }; code.assignIndices(callback); return code; }
int accessFlags = one.getAccessFlags(); if (AccessFlags.isStatic(accessFlags)) { TypedConstant constVal = one.getConstantValue(); EncodedField fi = new EncodedField(field, accessFlags);
int accessFlags = one.getAccessFlags(); if (AccessFlags.isStatic(accessFlags)) { TypedConstant constVal = one.getConstantValue(); EncodedField fi = new EncodedField(field, accessFlags);
int accessFlags = one.getAccessFlags(); if (AccessFlags.isStatic(accessFlags)) { TypedConstant constVal = one.getConstantValue(); EncodedField fi = new EncodedField(field, accessFlags);
int accessFlags = one.getAccessFlags(); if (AccessFlags.isStatic(accessFlags)) { TypedConstant constVal = one.getConstantValue(); EncodedField fi = new EncodedField(field, accessFlags);
int accessFlags = one.getAccessFlags(); if (AccessFlags.isStatic(accessFlags)) { TypedConstant constVal = one.getConstantValue(); EncodedField fi = new EncodedField(field, accessFlags);
int accessFlags = one.getAccessFlags(); if (AccessFlags.isStatic(accessFlags)) { TypedConstant constVal = one.getConstantValue(); EncodedField fi = new EncodedField(field, accessFlags);