Mercurial > paraspace
diff paraspace/dex_deptracker.py @ 127:650244dcdd82
Sort arrays in rules requested by dalvik
author | Thinker K.F. Li <thinker@codemud.net> |
---|---|
date | Mon, 08 Aug 2011 22:34:11 +0800 |
parents | ff6f869273b7 |
children | 52749d91cc22 |
line wrap: on
line diff
--- a/paraspace/dex_deptracker.py Mon Aug 08 17:26:05 2011 +0800 +++ b/paraspace/dex_deptracker.py Mon Aug 08 22:34:11 2011 +0800 @@ -785,6 +785,27 @@ return depon_dep_map +## \brief Make sorted arrays being sorted. +# +# Some array in a DEXFile must be sorted in some kind of rule. They +# are typed by \ref array_sorted, the type of a sorted array. Child +# type of a sorted array must implement __cmp__ method to define the +# rule. +# +# This function must be applied on a DEXFile_linked before calling +# restore_dependencies(). +# +def dex_sort_sorted_arrays(dex): + assert isinstance(dex, dexfile.DEXFile_linked) + + for obj, parents, name_path in _travel_dex_relocatable(dex): + if isinstance(obj, dexfile.array_sorted): + obj.items.sort() + pass + pass + pass + + ## \brief Update offset for all relocatable of a DEXFile. # # Update offset of instances of \ref _dex_type.