445 Commits

Author SHA1 Message Date
Ben Gruver
d4b08e1b21 Move MethodReference.getParameters() to Method, and replace with getParameterTypes()
It's common that the caller only needs the parameter type info, and not the
name/annotation/etc, and retrieving just the parameter types can be implemented
more efficiently.
2012-12-30 20:58:13 -08:00
Ben Gruver
a70faf072b Fix an error when getting parameters on a method with no debug info 2012-12-30 16:03:23 -08:00
Ben Gruver
d521168155 Return correct value on first attempt to resolve synthetic accessor 2012-12-30 16:03:23 -08:00
Ben Gruver
0a9e289eb2 Cache the strings when reading a dex file 2012-12-30 13:47:04 -08:00
Ben Gruver
e29142d406 Fix AnnotationDirectoryPool comparisons 2012-12-29 23:06:20 -08:00
Ben Gruver
db5d398850 Write an encoded char as uint rather than int. 2012-12-29 18:45:48 -08:00
Ben Gruver
8045a499ff Fix how proto id items are sorted 2012-12-29 18:44:58 -08:00
Ben Gruver
0843bbe9c6 Add TODO reminder to add support for unknown opcodes 2012-12-29 18:12:57 -08:00
Izzat Bahadirov
ca6bcd56b6 Writing field_idx before proto_idx to satisfy dex spec. 2012-12-29 18:06:06 -08:00
Ben Gruver
5152315e25 Fix method sorting in AnnotationDirectoryPool 2012-12-29 14:51:07 -08:00
Ben Gruver
7d5439950f Fix various issues related to comparing method references. 2012-12-29 14:50:15 -08:00
Ben Gruver
3360e18c53 Fix AnnotationSetRefPool.getOffset 2012-12-29 11:44:52 -08:00
Ben Gruver
34cc1b7b82 Fix multiple minor issues with debug info generation 2012-12-28 23:00:21 -08:00
Ben Gruver
b64be8ba36 Make sure we write an even number of bytes for an array data instruction 2012-12-28 22:01:10 -08:00
Ben Gruver
e240310664 Fix how the code units are counted when writing a code_item 2012-12-28 21:16:22 -08:00
Ben Gruver
1e325b6134 Use the correct string for the local signature 2012-12-28 20:57:24 -08:00
Ben Gruver
710ef75b81 Write the parameter names as uleb128p1, in debug_info_item 2012-12-28 20:56:48 -08:00
Ben Gruver
b2ae115dd5 Fix how reference index is written in format 35c and 3rc 2012-12-28 20:10:43 -08:00
Ben Gruver
257fa2dfca Write the header for annotation and array encoded values 2012-12-28 19:42:28 -08:00
Ben Gruver
8721a614f5 Sort the method_id_items before writing them 2012-12-28 18:28:31 -08:00
Ben Gruver
3d0419c963 Track and seek to the current position in RandomAccessFileOutputStream 2012-12-28 17:40:46 -08:00
Izzat Bahadirov
b85cfe5cc8 Fix for incorrect map_item offset. 2012-12-28 17:22:35 -08:00
Izzat Bahadirov
b254a997b5 Fixed the count of map_items in map_list. 2012-12-28 17:22:35 -08:00
Izzat Bahadirov
0e3a7a36d1 Helper method to get map_item name. Useful when dumping stats. 2012-12-28 17:22:30 -08:00
Ben Gruver
7dff6ada5e Add tests for DexWriter (and fixes to DexWriter, to make said tests pass) 2012-12-28 16:37:41 -08:00
Ben Gruver
9a90c5560c Refactor DexWriter to write to a generic OutputStream 2012-12-28 16:28:35 -08:00
Izzat Bahadirov
9393c08e36 Using tempBuf when writing encoded floats and doubles. Otherwise, output dex file gets corrupted. 2012-12-27 19:19:38 -08:00
Izzat Bahadirov
fcd1286d41 Added support for getting dex file stats: checkum, signature, map. 2012-12-27 19:19:32 -08:00
Izzat Bahadirov
8aef982e0c Add support for writing header_item 2012-12-27 19:18:40 -08:00
Izzat Bahadirov
085cfce948 Add support for writing map_item 2012-12-27 19:18:34 -08:00
Izzat Bahadirov
e68daf22aa Add support for writing class_def_items and class_data 2012-12-26 20:40:35 -08:00
Izzat Bahadirov
f3c33259dd Add support for writing code_items 2012-12-26 20:24:25 -08:00
Izzat Bahadirov
56c7adde03 ExceptionHandlers are now stored in a List rather than a Set. Order matters. 2012-12-26 20:18:15 -08:00
Izzat Bahadirov
03411559cf Setting an index in iterator correctly. 2012-12-26 20:18:15 -08:00
Ben Gruver
3952733b85 Return an offset of 0 for an empty annotation directory item 2012-12-11 23:37:24 -08:00
Ben Gruver
280b97e995 Add support for writing debug_info_items 2012-11-18 19:00:22 -08:00
Ben Gruver
4ffbfa2e71 Initial commit of writer functionality
It's not fully functional yet, but the structure is there, and it's
got most item types
2012-11-18 14:33:32 -08:00
Ben Gruver
22c3185bb7 Major cleanup of the interface and library in general 2012-11-17 17:51:36 -08:00
Ben Gruver
bea9627ed7 Change the nomenclature from CodeOffset to CodeAddress for absolute code positions 2012-11-16 22:54:14 -08:00
Ben Gruver
cb5cf3d6c0 Delete the MethodPrototype interface 2012-11-16 22:53:03 -08:00
Ben Gruver
85b3146224 Use final and a private constructor for non-instantiable classes 2012-11-16 22:35:12 -08:00
Ben Gruver
d71c98f6b9 Return the correct register count in ImmutableMethodImplementation 2012-11-12 23:03:18 -08:00
Ben Gruver
2d7e111135 Add sorted interface and immutable implementations 2012-11-12 22:55:06 -08:00
Ben Gruver
ddf2021942 Add @Nonnull for ImmutableListConverter methods 2012-11-12 22:25:15 -08:00
Ben Gruver
60ca2ce0ae Add base implementations of Annotation and AnnotationElement 2012-11-12 22:25:15 -08:00
Ben Gruver
8f14d3641c Make StringReference and TypeReference implement CharSequence 2012-11-12 22:25:11 -08:00
Ben Gruver
c6e54994a7 Use collections of annotations, not lists. 2012-11-12 22:20:39 -08:00
Ben Gruver
12b970ed4d Use collections instead of lists for variable size "lists" in the dex file
Only things that can be accessed in the dex file in a random access manner
should be exposed as a list. If the list must be read sequentially, it is
exposed in the interface as a Collection if the size is available up-front
or as an Iterable if the size can only be determined by iterating over the
list.
2012-11-12 22:20:33 -08:00
Ben Gruver
65d969c23b Rename VariableSizeIterator to VariableSizeLookaheadIterator
This improves the implementation, and is now used for debug info
2012-11-11 12:49:38 -08:00
Ben Gruver
b26b492fcc Get rid of BaseAnnotation 2012-11-10 21:04:31 -08:00