Don't pre-sort ClassDefItems

This commit is contained in:
Ben Gruver 2012-06-11 16:00:43 -07:00
parent 9a295c54e1
commit 4de8efcc31
2 changed files with 8 additions and 9 deletions

View File

@ -197,9 +197,9 @@ public class ClassDefItem extends Item<ClassDefItem> {
/** {@inheritDoc} */
public int compareTo(ClassDefItem o) {
//The actual sorting for this class is implemented in SortClassDefItemSection.
//This method is just used for sorting the associated ClassDataItem items, so
//we can just do the comparison based on the offsets of the items
//The actual sorting for this class is done during the placement phase, in ClassDefPlacer.
//This method is just used for sorting the associated ClassDataItem items after the ClassDefItems have been
//placed, so we can just do the comparison based on the offsets
return this.getOffset() - o.getOffset();
}

View File

@ -773,16 +773,15 @@ public class DexFile
int ret = ClassDefItem.placeClassDefItems(this, offset);
Collections.sort(this.items, new Comparator<ClassDefItem>() {
public int compare(ClassDefItem a, ClassDefItem b) {
return a.getOffset() - b.getOffset();
}
});
Collections.sort(this.items);
this.offset = items.get(0).getOffset();
return ret;
}
protected void sortSection() {
// Do nothing. Sorting is handled by ClassDefItem.ClassDefPlacer, during placement
}
};
/**