Ben Gruver
02560f3f7f
Make sure the referenced class is accessible when deodexing a field/method access
2013-06-15 18:12:09 -07:00
Ben Gruver
8553393690
Fix some warnings in MethodAnalyzer
2013-06-15 18:12:05 -07:00
Ben Gruver
5a372d5fcf
Make SyntheticAccessorResolver thread safe
2013-06-15 11:32:31 -07:00
Izzat Bahadirov
46619d11bf
More proper unit test conditions.
2013-06-04 21:40:42 -04:00
Izzat Bahadirov
180529840c
Always aligning payload instructions.
2013-06-04 15:44:12 -04:00
Izzat Bahadirov
6d48e5db17
Breaking out of loop after test condition verification.
2013-06-04 15:35:54 -04:00
Ben Gruver
01cfa02bfe
Fix issue with opcodes that have a max api
2013-06-01 14:27:57 -07:00
Ben Gruver
d1c0848d13
Don't reuse map entries for the class iterator in ClassPool
2013-06-01 13:53:14 -07:00
Ben Gruver
f1f00f9f6e
Initialize ClassDef index to -1 instead of 0 in DexPool
2013-06-01 13:41:53 -07:00
Ben Gruver
2973f7a4af
Fix issue in DexPool with blank parameter annotations
2013-06-01 13:06:04 -07:00
Ben Gruver
9ed12bac38
Add a common superclass for Annotation and AnnotationEncodedValue
2013-05-28 11:06:57 -07:00
Ben Gruver
0a7f00ccb1
Use Iterable<DexFile> instead of DexFile[] in ClassPath constructor
2013-05-12 20:59:50 -07:00
Ben Gruver
7e25c35df7
Make baksmali thread safe, and add -j option
2013-05-12 12:31:24 -07:00
Ben Gruver
ec1348b46d
Allow vtable lookups of Object methods for a class that can't be fully resolved
2013-05-07 19:38:38 -07:00
Ben Gruver
4ee6056b23
Remove unnecessary TODO
2013-05-07 18:50:57 -07:00
Ben Gruver
a2069cd866
Fix issue with deodexing invoke-virtual-quick/range
2013-05-06 23:57:35 -07:00
Ben Gruver
9743f4de0c
Deodex an invoke-object-init/range as a non-range invoke-virtual when possible
2013-05-06 23:57:09 -07:00
Ben Gruver
94565fa09e
Don't replace virtual methods with interface methods in the vtable
2013-05-06 23:56:20 -07:00
Ben Gruver
a7f2135b2f
Factor out repeated calls to getVtable() in getMethodByVtableIndex
2013-05-06 23:55:51 -07:00
Ben Gruver
86112a840f
Add some java docs for the getInterface methods
2013-05-06 22:07:55 -07:00
Ben Gruver
fad4d1a1a9
Sort the instance fields and use List<Field> rather than Field[]
2013-05-06 22:07:49 -07:00
Ben Gruver
5b69a5f3a5
Merge remote-tracking branch 'izzy_github/deodex2' into dexlib_redesign
...
Conflicts:
dexlib2/src/main/java/org/jf/dexlib2/analysis/ClassPath.java
2013-05-06 21:13:55 -07:00
Izzat Bahadirov
363af0a52b
Using newer API getInstanceFields() instead of getFields() + filtering.
2013-05-06 21:07:45 -04:00
Izzat Bahadirov
490a8b2cd0
Another @Nonnull.
2013-05-06 21:02:31 -04:00
Izzat Bahadirov
3aa6e2d4fa
Using Predicates.notNull() to filter for direct interfaces.
2013-05-06 20:59:43 -04:00
Izzat Bahadirov
0ac9242368
More @Nonnull's.
2013-05-06 15:21:49 -04:00
Izzat Bahadirov
b16caa690d
More elegant way of getting direct interfaces, now using FluentIterable.
2013-05-06 14:46:59 -04:00
Izzat Bahadirov
4147960f6e
Propagating interfacesFullyResolved from the parent.
2013-05-06 14:26:53 -04:00
Ben Gruver
a22cdb820a
Remove extraneous fields in Opcode
2013-05-05 18:25:47 -07:00
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