From 1877b664de12b6b8801606f72e88a7301a1f1144 Mon Sep 17 00:00:00 2001 From: "JesusFreke@JesusFreke.com" Date: Sun, 23 Aug 2009 03:43:19 +0000 Subject: [PATCH] When making a ClassDataItem from scratch, sort the fields and methods git-svn-id: https://smali.googlecode.com/svn/trunk@405 55b6fa8a-2a1e-11de-a435-ffa8d773f76a --- dexlib/src/main/java/org/jf/dexlib/ClassDataItem.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/dexlib/src/main/java/org/jf/dexlib/ClassDataItem.java b/dexlib/src/main/java/org/jf/dexlib/ClassDataItem.java index b7ee53b1..03745d98 100644 --- a/dexlib/src/main/java/org/jf/dexlib/ClassDataItem.java +++ b/dexlib/src/main/java/org/jf/dexlib/ClassDataItem.java @@ -30,6 +30,9 @@ package org.jf.dexlib; import org.jf.dexlib.Util.*; +import java.util.Arrays; +import java.util.Comparator; + public class ClassDataItem extends Item { private EncodedField[] staticFields; private EncodedField[] instanceFields; @@ -75,6 +78,13 @@ public class ClassDataItem extends Item { public static ClassDataItem getInternedClassDataItem(DexFile dexFile, EncodedField[] staticFields, EncodedField[] instanceFields, EncodedMethod[] directMethods, EncodedMethod[] virtualMethods) { + if (!dexFile.getInplace()) { + Arrays.sort(staticFields); + Arrays.sort(instanceFields); + Arrays.sort(directMethods); + Arrays.sort(virtualMethods); + } + ClassDataItem classDataItem = new ClassDataItem(dexFile, staticFields, instanceFields, directMethods, virtualMethods); return dexFile.ClassDataSection.intern(classDataItem);