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
4c431a7ce7
Add multi-threading support for smali
2013-04-30 01:05:16 -07:00
Ben Gruver
03a4ffa1f4
Delete some unneeded TODOs
2013-04-29 23:49:55 -07:00
Ben Gruver
894327c7ed
Clean up smali's main class a bit
2013-04-29 23:05:32 -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
3e4e5ec7a4
Change .param and .local syntax, to be able to handle empty name/type/signature
2013-04-18 00:17:34 -07:00
Ben Gruver
aa860984c0
Get rid of unneeded TODO
2013-04-17 22:33:11 -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