public int placeSection(int offset) { currentOffset = offset; if (section.DexFile.getSortAllItems()) { //presort the list, to guarantee a unique ordering Collections.sort(section.items, new Comparator<ClassDefItem>() { public int compare(ClassDefItem a, ClassDefItem b) { return a.getClassType().compareTo(b.getClassType()); } }); } //we need to initialize the offset for all the classes to -1, so we can tell which ones //have been placed for (ClassDefItem classDefItem: section.items) { classDefItem.offset = -1; } for (ClassDefItem classDefItem: section.items) { placeClass(classDefItem); } for (ClassDefItem classDefItem: unplacedClassDefsByType.values()) { section.items.set(classDefItem.getIndex(), classDefItem); } return currentOffset; }
public int placeSection(int offset) { currentOffset = offset; if (section.DexFile.getSortAllItems()) { //presort the list, to guarantee a unique ordering Collections.sort(section.items, new Comparator<ClassDefItem>() { public int compare(ClassDefItem a, ClassDefItem b) { return a.getClassType().compareTo(b.getClassType()); } }); } //we need to initialize the offset for all the classes to -1, so we can tell which ones //have been placed for (ClassDefItem classDefItem: section.items) { classDefItem.offset = -1; } for (ClassDefItem classDefItem: section.items) { placeClass(classDefItem); } for (ClassDefItem classDefItem: unplacedClassDefsByType.values()) { section.items.set(classDefItem.getIndex(), classDefItem); } return currentOffset; }