return new MethodDescriptor(params, ret);
private String buildNewDescriptor(boolean isField, String descriptor) { if (isField) { return FieldDescriptor.parseDescriptor(descriptor).buildNewDescriptor(this); } else { return MethodDescriptor.parseDescriptor(descriptor).buildNewDescriptor(this); } } }
System.arraycopy(params, 0, newParams, 0, params.length); for (int i = 0; i < params.length; i++) { VarType substitute = buildNewType(params[i], builder); if (substitute != null) { newParams[i] = substitute; VarType substitute = buildNewType(ret, builder); if (substitute != null) { newRet = substitute;
descriptor = MethodDescriptor.parseDescriptor(cn.descriptor);
for (StructMethod mt : cl.getMethods()) { if (name.equals(mt.getName())) { MethodDescriptor md = MethodDescriptor.parseDescriptor(mt.getDescriptor()); if (md.params.length == descriptor.params.length) { for (int i = 0; i < md.params.length; i++) { MethodDescriptor md = MethodDescriptor.parseDescriptor(mt.getDescriptor()); if (md.params.length == lstParameters.size()) { boolean exact = true;
private static Map<String, List<VarFieldPair>> getMaskLocalVars(ClassWrapper wrapper) { Map<String, List<VarFieldPair>> mapMasks = new HashMap<>(); StructClass cl = wrapper.getClassStruct(); // iterate over constructors for (StructMethod mt : cl.getMethods()) { if (CodeConstants.INIT_NAME.equals(mt.getName())) { MethodDescriptor md = MethodDescriptor.parseDescriptor(mt.getDescriptor()); MethodWrapper method = wrapper.getMethodWrapper(CodeConstants.INIT_NAME, mt.getDescriptor()); DirectGraph graph = method.getOrBuildGraph(); if (graph != null) { // something gone wrong, should not be null List<VarFieldPair> fields = new ArrayList<>(md.params.length); int varIndex = 1; for (int i = 0; i < md.params.length; i++) { // no static methods allowed String keyField = getEnclosingVarField(cl, method, graph, varIndex); fields.add(keyField == null ? null : new VarFieldPair(keyField, new VarVersionPair(-1, 0))); // TODO: null? varIndex += md.params[i].stackSize; } mapMasks.put(mt.getDescriptor(), fields); } } } return mapMasks; }
private String buildNewDescriptor(boolean isField, String descriptor) { String newDescriptor; if (isField) { newDescriptor = FieldDescriptor.parseDescriptor(descriptor).buildNewDescriptor(this); } else { newDescriptor = MethodDescriptor.parseDescriptor(descriptor).buildNewDescriptor(this); } return newDescriptor != null ? newDescriptor : descriptor; }
System.arraycopy(params, 0, newParams, 0, params.length); for (int i = 0; i < params.length; i++) { VarType substitute = buildNewType(params[i], builder); if (substitute != null) { newParams[i] = substitute; VarType substitute = buildNewType(ret, builder); if (substitute != null) { newRet = substitute;
return new MethodDescriptor(params, ret);
MethodDescriptor md = MethodDescriptor.parseDescriptor(invoke_dynamic.descriptor);
private String buildNewDescriptor(boolean isField, String descriptor) { String newDescriptor; if (isField) { newDescriptor = FieldDescriptor.parseDescriptor(descriptor).buildNewDescriptor(this); } else { newDescriptor = MethodDescriptor.parseDescriptor(descriptor).buildNewDescriptor(this); } return newDescriptor != null ? newDescriptor : descriptor; }
if (method.synthParameters != null) { int index = 0, varIndex = 1; MethodDescriptor md = MethodDescriptor.parseDescriptor(method.methodStruct.getDescriptor());
private String buildNewDescriptor(boolean isField, String descriptor) { if (isField) { return FieldDescriptor.parseDescriptor(descriptor).buildNewDescriptor(this); } else { return MethodDescriptor.parseDescriptor(descriptor).buildNewDescriptor(this); } } }
MethodDescriptor md = MethodDescriptor.parseDescriptor(mt.getDescriptor());
MethodDescriptor md = MethodDescriptor.parseDescriptor(mt.getDescriptor());
MethodWrapper enclosingMethod = parent.getWrapper().getMethods().getWithKey(child.enclosingMethod); MethodDescriptor md_lambda = MethodDescriptor.parseDescriptor(child.lambdaInformation.method_descriptor); MethodDescriptor md_content = MethodDescriptor.parseDescriptor(child.lambdaInformation.content_method_descriptor);
public static DataPoint getInitialDataPoint(StructMethod mt) { DataPoint point = new DataPoint(); MethodDescriptor md = MethodDescriptor.parseDescriptor(mt.getDescriptor()); int k = 0; if (!mt.hasModifier(CodeConstants.ACC_STATIC)) { point.setVariable(k++, new VarType(CodeConstants.TYPE_OBJECT, 0, null)); } for (int i = 0; i < md.params.length; i++) { VarType var = md.params[i]; point.setVariable(k++, var); if (var.stackSize == 2) { point.setVariable(k++, new VarType(CodeConstants.TYPE_GROUP2EMPTY)); } } return point; }
private SFormsFastMapDirect createFirstMap(StructMethod mt) { boolean thisvar = !mt.hasModifier(CodeConstants.ACC_STATIC); MethodDescriptor md = MethodDescriptor.parseDescriptor(mt.getDescriptor()); int paramcount = md.params.length + (thisvar ? 1 : 0); int varindex = 0; SFormsFastMapDirect map = new SFormsFastMapDirect(); for (int i = 0; i < paramcount; i++) { int version = getNextFreeVersion(varindex); // == 1 FastSparseSet<Integer> set = factory.spawnEmptySet(); set.add(version); map.put(varindex, set); if (thisvar) { if (i == 0) { varindex++; } else { varindex += md.params[i - 1].stackSize; } } else { varindex += md.params[i].stackSize; } } return map; }
private SFormsFastMapDirect createFirstMap(StructMethod mt, RootStatement root) { boolean thisvar = !mt.hasModifier(CodeConstants.ACC_STATIC); MethodDescriptor md = MethodDescriptor.parseDescriptor(mt.getDescriptor()); int paramcount = md.params.length + (thisvar ? 1 : 0); int varindex = 0; SFormsFastMapDirect map = new SFormsFastMapDirect(); for (int i = 0; i < paramcount; i++) { int version = getNextFreeVersion(varindex, root); // == 1 FastSparseSet<Integer> set = factory.spawnEmptySet(); set.add(version); map.put(varindex, set); ssuversions.createNode(new VarVersionPair(varindex, version)); if (thisvar) { if (i == 0) { varindex++; } else { varindex += md.params[i - 1].stackSize; } } else { varindex += md.params[i].stackSize; } } return map; }
MethodDescriptor md = MethodDescriptor.parseDescriptor(mParts[2]); buffer.append(mParts[1]); buffer.append(" (");