private static boolean possiblySyntheticField(StructField fd) { return fd.getName().contains("$") && fd.hasModifier(CodeConstants.ACC_FINAL) && fd.hasModifier(CodeConstants.ACC_PRIVATE); }
setFieldNames.add(f.getName());
String descriptor = fd.getDescriptor(); if (fd.isSynthetic() && descriptor.equals("[L" + cl.qualifiedName + ";")) { wrapper.getHiddenMembers().add(InterpreterUtil.makeUniqueKey(fd.getName(), descriptor));
public static void buildAssertions(ClassNode node) { ClassWrapper wrapper = node.getWrapper(); StructField field = findAssertionField(node); if (field != null) { String key = InterpreterUtil.makeUniqueKey(field.getName(), field.getDescriptor()); boolean res = false; for (MethodWrapper meth : wrapper.getMethods()) { RootStatement root = meth.root; if (root != null) { res |= replaceAssertions(root, wrapper.getClassStruct().qualifiedName, key); } } if (res) { // hide the helper field wrapper.getHiddenMembers().add(key); } } }
setFieldNames.add(fd.getName()); if (helper.toBeRenamed(IIdentifierRenamer.Type.ELEMENT_FIELD, classOldFullName, fd.getName(), fd.getDescriptor())) { String newName; do { newName = helper.getNextFieldName(classOldFullName, fd.getName(), fd.getDescriptor()); interceptor.addName(classOldFullName + " " + fd.getName() + " " + fd.getDescriptor(), classNewFullName + " " + newName + " " + buildNewDescriptor(true, fd.getDescriptor()));
.add(InterpreterUtil.makeUniqueKey(fd.getName(), fd.getDescriptor())); // hide synthetic field return ((ConstExprent)invexpr.getLstParameters().get(0)).getValue().toString();
child.getWrapper().getHiddenMembers().add(InterpreterUtil.makeUniqueKey(fd.getName(), fd.getDescriptor()));
String keyField = InterpreterUtil.makeUniqueKey(fd.getName(), fd.getDescriptor());
classStruct.getFields().forEach(f -> namesCollector.addName(f.getName())); varProc.refreshVarNames(namesCollector);
String oldName = interceptor.getOldName(cl.qualifiedName + " " + fd.getName() + " " + fd.getDescriptor()); appendRenameComment(buffer, oldName, MType.FIELD, indent); buffer.append(fd.getName()); initializer = wrapper.getStaticFieldInitializers().getWithKey(InterpreterUtil.makeUniqueKey(fd.getName(), fd.getDescriptor())); initializer = wrapper.getDynamicFieldInitializers().getWithKey(InterpreterUtil.makeUniqueKey(fd.getName(), fd.getDescriptor()));
fieldInClassInit = true; if (node.getWrapper() != null && node.getWrapper().getHiddenMembers().contains(InterpreterUtil.makeUniqueKey(fd.getName(), fd.getDescriptor()))) { hiddenField = true;
for (int i = 0; i < length; i++) { StructField field = new StructField(in, this); fields.addWithKey(field, InterpreterUtil.makeUniqueKey(field.getName(), field.getDescriptor()));
wrapper.getHiddenMembers().contains(InterpreterUtil.makeUniqueKey(fd.getName(), fd.getDescriptor())); if (hide) continue;
public ImportCollector(ClassNode root) { String clName = root.classStruct.qualifiedName; int index = clName.lastIndexOf('/'); if (index >= 0) { String packageName = clName.substring(0, index); currentPackageSlash = packageName + '/'; currentPackagePoint = packageName.replace('/', '.'); } else { currentPackageSlash = ""; currentPackagePoint = ""; } Map<String, StructClass> classes = DecompilerContext.getStructContext().getClasses(); StructClass currentClass = root.classStruct; while (currentClass != null) { // all field names for the current class .. for (StructField f : currentClass.getFields()) { setFieldNames.add(f.getName()); } // .. and traverse through parent. currentClass = currentClass.superClass != null ? classes.get(currentClass.superClass.getString()) : null; } }
String descriptor = fd.getDescriptor(); if (fd.isSynthetic() && descriptor.equals("[L" + cl.qualifiedName + ";")) { wrapper.getHiddenMembers().add(InterpreterUtil.makeUniqueKey(fd.getName(), descriptor));
public static void buildAssertions(ClassNode node) { ClassWrapper wrapper = node.getWrapper(); StructField field = findAssertionField(node); if (field != null) { String key = InterpreterUtil.makeUniqueKey(field.getName(), field.getDescriptor()); boolean res = false; for (MethodWrapper meth : wrapper.getMethods()) { RootStatement root = meth.root; if (root != null) { res |= replaceAssertions(root, wrapper.getClassStruct().qualifiedName, key); } } if (res) { // hide the helper field wrapper.getHiddenMembers().add(key); } } }
.add(InterpreterUtil.makeUniqueKey(fd.getName(), fd.getDescriptor())); // hide synthetic field return ((ConstExprent)invexpr.getLstParameters().get(0)).getValue().toString();
String keyField = InterpreterUtil.makeUniqueKey(fd.getName(), fd.getDescriptor());
fieldInClassInit = true; if (node.getWrapper() != null && node.getWrapper().getHiddenMembers().contains(InterpreterUtil.makeUniqueKey(fd.getName(), fd.getDescriptor()))) { hiddenField = true;
for (int i = 0; i < length; i++) { StructField field = new StructField(in, this); fields.addWithKey(field, InterpreterUtil.makeUniqueKey(field.getName(), field.getDescriptor()));