455 Commits

Author SHA1 Message Date
Ben Gruver
d54761778b Fix issue when writing parameter annotations 2013-05-03 21:02:52 -07:00
Ben Gruver
05201785fe Clean up some more TODOs 2013-05-03 21:02:39 -07:00
Ben Gruver
d38f3a7983 Fix up line number handling to be unsigned int safe 2013-05-03 19:35:47 -07:00
Izzat Bahadirov
9d8cf0d67c Added self (if interface) and super class interfaces to the interface table. 2013-05-03 16:16:23 -04:00
Izzat Bahadirov
063862d44c Propagating interfaceFullyResolved flag from parent to child interfaces. 2013-05-02 17:15:09 -04:00
Izzat Bahadirov
d3ac72fd67 Introduced getInterfacesFull() method to ensure that all interfaces are resolved when creating a vtable. 2013-05-01 17:58:58 -04:00
Izzat Bahadirov
89b28308db Throwing UnresolvedClassException if interfaces weren't fully resolved. 2013-05-01 17:35:31 -04:00
Ben Gruver
6fc32629c2 Look up ClassDefs in ClassPath using a hashmap 2013-04-30 21:57:13 -07:00
Ben Gruver
6893c660a3 Remove the spurious logging of classpath file names in ClassPath 2013-04-30 21:57:13 -07:00
Ben Gruver
936cc551f7 Clean up some TODOs 2013-04-30 21:57:08 -07:00
Ben Gruver
d8d16fd844 Get rid of the unneeded classDataOffset in DexBackedClassDef 2013-04-30 21:40:36 -07:00
Ben Gruver
df8e480211 Write the correct header version based on the api level 2013-04-30 20:43:57 -07:00
Ben Gruver
03a4ffa1f4 Delete some unneeded TODOs 2013-04-29 23:49:55 -07:00
Ben Gruver
42627b850c Add new DexBuilder interface
This is a different "front-end" for the existing writer functionality that
is meant to be a more memory efficient method for building a new dex file
from scratch
2013-04-29 23:05:05 -07:00
Ben Gruver
1726f028a8 Get rid of the annotation set ref list pool 2013-04-29 20:10:54 -07:00
Ben Gruver
fbdc6cb9cb Clean up how the annotation directory items are written 2013-04-29 20:10:54 -07:00
Ben Gruver
816e793f81 Tweak to the numSectionItems field naming in DexWriter 2013-04-29 20:10:54 -07:00
Ben Gruver
242dd62a71 Get rid of the encoded array pool 2013-04-29 20:10:50 -07:00
Izzat Bahadirov
5c2353878c Sorting virtual methods when adding them. 2013-04-29 17:04:46 -04:00
Izzat Bahadirov
0f61ce9a6f Fix for broken tests. 2013-04-29 17:02:14 -04:00
Izzat Bahadirov
6a2a627d3b Fixed formatting. 2013-04-29 16:36:13 -04:00
Izzat Bahadirov
03b8247850 Renamed getVersion() to getOdexVersion() in DexBackedOdexFile. 2013-04-29 16:27:45 -04:00
Izzat Bahadirov
64898161b3 Added API level check to adding methods to vtable. 2013-04-29 16:09:36 -04:00
Izzat Bahadirov
2206c7638b Adding @Nonnull's and removing unnecessary null checks. 2013-04-29 15:58:35 -04:00
Izzat Bahadirov
e3b5efd7d8 Unified interface table creation logic. No more duplication. 2013-04-28 17:30:11 -04:00
Ben Gruver
0f198bc78b Fix some nitpicks in dex writer code path 2013-04-28 12:17:45 -07:00
Ben Gruver
3c3a3c4af8 Add missing @Nonnull attributes for various EncodedValue.getValue() methods 2013-04-28 01:11:23 -07:00
Ben Gruver
1bf6f23245 Implementation of new generificationified writer functionality 2013-04-27 22:23:30 -07:00
Ben Gruver
afc0a7d325 If an exception occurs while dumping, write out what we have so far 2013-04-27 22:22:55 -07:00
Ben Gruver
8340ecf3d5 Fix potential formatting issue with local variable signatures in dump output 2013-04-27 22:22:55 -07:00
Ben Gruver
70c5b247e6 Fix formatting issue with negative jump offsets in dump output 2013-04-27 22:22:55 -07:00
Izzat Bahadirov
389c3a6afa Fix for invoke-virtual/range with no register range. 2013-04-27 23:19:17 -04:00
Izzat Bahadirov
d4e3ab3fd5 Fixed querying for odex version. 2013-04-22 17:20:26 -04:00
Izzat Bahadirov
6cf22f1eac Object register value now lives in register C, not D. 2013-04-22 16:12:48 -04:00
Izzat Bahadirov
9c72df65f7 Using standard InlineMethodResolver if no custom one is provided. 2013-04-22 14:00:49 -04:00
Ben Gruver
231034cf95 Make sure to truncate the output file before writing the new dex file 2013-04-20 01:28:31 -07:00
Ben Gruver
2fe6041fa9 Add support for empty sparse switch data instructions 2013-04-20 01:28:31 -07:00
Ben Gruver
c89097680e Add support for empty packed switch data instructions 2013-04-20 01:28:31 -07:00
Ben Gruver
4879652a47 Remove the unused classes field from writer.DexFile 2013-04-20 01:28:31 -07:00
Izzat Bahadirov
d6737943e1 Fixed alignment. 2013-04-19 17:44:54 -04:00
Izzat Bahadirov
ea4ee3e8de Better wording for dump usage printout. 2013-04-19 17:43:14 -04:00
Izzat Bahadirov
10fdd19778 Moving to ClassDef.getVirtualMethods() API. 2013-04-19 17:31:05 -04:00
Izzat Bahadirov
b2ce899471 Getting instance fields by offset and methods by vtable index.
- Dump utilities
2013-04-19 17:31:05 -04:00
Ben Gruver
f939e912b5 Fix issue with out-of-order iteration of virtual methods 2013-04-19 14:29:07 -07:00
Ben Gruver
b6435e7a47 Add support to smali for a .source directive with no source file 2013-04-18 00:27:16 -07:00
Ben Gruver
83f77f51aa Refactor how api specific Opcodes work (make them non-static) 2013-04-17 22:32:08 -07:00
Ben Gruver
9062640179 Fix issue with interning proto_id_items while writing dex file 2013-04-17 00:25:05 -07:00
Ben Gruver
3d5423ed2b Tweak how hashCode and equals works for MethodReferences
This fixes an issue where method references weren't being properly
interned when generating a dex file
2013-04-17 00:13:12 -07:00
Ben Gruver
dda097947f Fix implementation of equals for BaseTypeReference
This fixes the implementation so it matches what is described in the
documentation for the TypeReference interface. Specifically, it allows
for comparison to a CharSequence
2013-04-17 00:12:20 -07:00
Ben Gruver
36b6a31685 Fix issue with empty superclass when dumping a Ljava/lang/Object; class 2013-04-16 23:19:06 -07:00