Commit Graph

1608 Commits

Author SHA1 Message Date
9f48c72390 Fix issues with converting switch statements in MutableMethodImplementation 2013-10-12 01:50:53 -07:00
135631b11b Fix issue with Format21lh instructions in MutableMethodImplementation 2013-10-12 01:10:38 -07:00
987ac1ed12 Fix the name and type being swapped when converting to ImmutableDebugInfo 2013-10-11 21:50:01 -07:00
bc6fcd5ae3 Fix accidental case fall-throughs in MutableMethodImplementation 2013-10-11 21:32:33 -07:00
1697b1d97d Fix "hat" literal conversion in MutableMethodImplementation 2013-10-11 21:32:01 -07:00
c864544b48 Bump up memory in smali script to 512m 2013-10-10 21:03:29 -07:00
7a03efcac6 Attempt to fix test for windows... again. 2013-10-10 20:41:36 -07:00
dbce47d361 Update to gradle 1.8 2013-10-10 20:41:28 -07:00
b9879ee917 Remove the old dexlib 2013-10-10 20:41:21 -07:00
c21644760f Merge branch 'master' into dexlib_redesign 2013-10-10 20:40:47 -07:00
4c51e89c9e Bump the version to 2.0 2013-10-10 20:07:32 -07:00
6926ece0cd Check for null before using Iterables.filter 2013-10-10 19:46:02 -07:00
216ca5376b Always use the 035 version magic value when writing a dex file 2013-10-10 19:37:56 -07:00
7618e1636c Make extra sure we don't output blank debug items 2013-09-28 17:57:33 -07:00
44c5c07c57 Don't output parameter names when using the -b/--no-debug-info option 2013-09-28 17:55:52 -07:00
a2bcd0f409 Merge pull request #17 from Fuzion24/alternate_constructor
Add alternative constructor
2013-09-21 21:38:20 -07:00
84be16bf51 Fix DebugItems in the new builder stuff 2013-09-21 14:40:49 -07:00
4ab8df84b0 Add alternative constructor
Add constructor that can use a bytestream so we can parse a DexFile
completely in memory
2013-09-20 00:00:31 -04:00
edd961477e Remove the now unused builder instructions and instruction factories 2013-09-15 12:55:36 -07:00
81648539c9 Bump the version to 2.0b6 2013-09-14 20:05:06 -07:00
f7d6d5fade Gracefully handle instructions with invalid references 2013-09-14 19:53:21 -07:00
f9bcf89674 Attempt to fix tests for windows 2013-09-14 13:59:02 -07:00
51a13e3353 Fix the tests related to bracketed names 2013-09-14 13:42:55 -07:00
569c014562 Allow arbitrary bracketed member names
Dalvik allows accesses and definitions of fields with angle brackets

It "allows" definitions of bracketed method names, but it will reject any
attempt to actually call them (except <init>, of course).
2013-09-14 13:35:04 -07:00
45b8a4dae8 Allow "large" uleb128 values for method/field index deltas 2013-09-14 12:47:23 -07:00
6cd686fbf5 Make windows reserved filename detection more robust
This checks for more reserved filenames than just aux
2013-09-14 11:35:53 -07:00
d868692e33 Truncate the filename for overly long class names 2013-09-14 11:33:18 -07:00
5ff4ee9a3f Add missing copyright/license headers 2013-09-14 00:43:41 -07:00
6762350ca0 Add ability to converting MethodImplementation to MutableMethodImplementation 2013-09-14 00:32:32 -07:00
9a2de93a99 Implement just-in-time instruction fixup due to string jumboification 2013-09-08 21:41:23 -07:00
99b46173c5 Generify the IO requirements for writing a dex file
The DexWriter implementations now write to a generic "DexDataStore", instead
of writing directly to a file.

Also, writing of the DebugItems and CodeItems are linked, with the code
items being written to a temporary location, and then the entire code item
section is written as a batch after the debug item section.
2013-09-08 15:30:58 -07:00
160449b83a Implement instruction fixing in MutableMethodImplementation 2013-09-07 14:54:16 -07:00
e80efa670f Implement instructions for the method builder 2013-09-02 12:20:13 -07:00
688611814d Implement debug items for the method impl builder 2013-09-01 16:44:20 -07:00
bb7937fd30 Get rid of the MethodItem concept 2013-09-01 09:37:49 -07:00
897832aa15 Implement try blocks for the method builder 2013-08-31 15:37:10 -07:00
160fc1cdba Split off a separate MutableMethodImplementation and implement labels 2013-08-31 14:12:58 -07:00
e94ee6fe80 Delete InstructionWriteUtil 2013-08-25 11:07:43 -07:00
dff046e1b5 Delete BuilderMethodImplementation, and simplify the DexWriter stuff accordingly
DexBuilder.internMethod now accepts a generic MethodImplementation instead. It is assumed that
the various String/Type/etc. references will have been interned by and returned from the
appropriate DexBuilder methodDelete BuilderMethodImplementation

DexBuilder.internMethod now accepts a generic MethodImplementation instead. It
is assumed that the various String/Type/etc. references will have been
interned by and returned from the appropriate DexBuilder method
2013-08-24 21:53:05 -07:00
0cd8417155 Remove the Instruction template parameter from DexWriter 2013-08-24 21:49:26 -07:00
e9aa2c230f Remove the Instruction template parameter from InstructionFactory 2013-08-24 21:47:57 -07:00
ca5de1d803 Remove the Instruction template parameter from ClassSection 2013-08-24 21:36:21 -07:00
6f135aeb74 Remove the ExceptionHandler template parameter from ClassSection
In DexBuilder, instead of statically specifying a specific ExceptionHandler
type, we dynamically check that the exception type reference returned from
the ExceptionHandler is of the proper type
2013-08-24 21:29:20 -07:00
9bbcaae91f Remove the DebugItem template parameter from ClassSection
In DexBuilder, instead of statically specifying a specific DebugItem type,
we dynamically check that the various String/Type References returned by
the items are of the proper type
2013-08-24 21:29:10 -07:00
a4e0efe9a5 Add ExceptionHandler.getExceptionTypeReference method 2013-08-24 20:23:12 -07:00
f320ed5293 Remove some incorrectly applied @Nonnull attributes 2013-08-24 18:53:32 -07:00
f97289cf3e Remove unneeded format precondition checks
The format precondition check should always occur in the base instruction
class
2013-08-24 18:53:32 -07:00
766f285a70 Initial stub MethodImplementationBuilder and integration into smali 2013-08-24 18:53:26 -07:00
a81c962f00 Remove support for using arbitrary offsets instead of labels 2013-08-24 15:52:38 -07:00
e636af4931 Fix bound check for short offset in Precoditions class 2013-06-22 13:07:39 -07:00