272 Commits

Author SHA1 Message Date
JesusFreke@JesusFreke.com
608ed0ef87 Removed the old HelloWorld example
git-svn-id: https://smali.googlecode.com/svn/trunk@72 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-03 07:06:29 +00:00
JesusFreke@JesusFreke.com
d54c635f84 - Added support for enum literals
- added "Enums" example, that shows how to construct an enum class
- added an enum value to the AnnotationValues example, to show how enum values are specified in an annotation

git-svn-id: https://smali.googlecode.com/svn/trunk@71 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-03 07:05:59 +00:00
JesusFreke@JesusFreke.com
361fa2548e Removed the debugging output in the lexer that printed out each token
git-svn-id: https://smali.googlecode.com/svn/trunk@70 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-03 06:09:39 +00:00
JesusFreke@JesusFreke.com
bd85442b25 Added a junit4 dependency to the Maven pom
git-svn-id: https://smali.googlecode.com/svn/trunk@69 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-03 05:10:27 +00:00
JesusFreke@JesusFreke.com
dbfce409d4 Added the "RecursiveAnnotation" example, which shows a humerous example of an annotation that references itself recursively, causing a stack overflow.
git-svn-id: https://smali.googlecode.com/svn/trunk@68 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-03 05:08:58 +00:00
JesusFreke@JesusFreke.com
cf396faa1a Added the "AnnotationTypes" example, which gives some examples of how to create and retrieve the various types of annotations (class, method, field, parameter)
git-svn-id: https://smali.googlecode.com/svn/trunk@67 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-03 05:05:52 +00:00
JesusFreke@JesusFreke.com
e391894f1b Added the "AnnotationValues" example, that gives some examples of how to specify values in an annotation
git-svn-id: https://smali.googlecode.com/svn/trunk@66 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-03 05:03:11 +00:00
JesusFreke@JesusFreke.com
302f64499a Fixed up the HelloWorld example to use the new field and member syntax
git-svn-id: https://smali.googlecode.com/svn/trunk@65 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-03 04:59:59 +00:00
JesusFreke@JesusFreke.com
4250768620 - made the .registers directive optional. it defaults to .registers 0 if not present
- added logic to avoid creating an empty code_item (i.e. for abstract methods)
- changed the field and parameter syntax so that there is a colon instead of a whitespace between the field/local name and the following type
- changed the member name syntax, so that the initial class is specified with the preceeding 'L' and folling ';', and changed the seperator between the class name and the member name to '->' instead of just another '/'
- added the ability to specify members and fields as constants for static fields or annotations (note: dalvik doesn't seem to like embedded field references)
- fixed the short and byte literals in the parser (they were mistakenly using the _EMIT token)
- fixed an issue with char literals where the value was always a single quote
- renamed the CLASS_OR_ARRAY_TYPE_DESCRIPTOR token and related rules to REFERENCE_TYPE_DESCRIPTOR
- renamed the FIELD_TYPE_DESCRIPTOR token and related rules to NONVOID_TYPE_DESCRIPTOR

git-svn-id: https://smali.googlecode.com/svn/trunk@64 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-03 04:58:54 +00:00
JesusFreke@JesusFreke.com
5cf0028e73 fixed the name of the "field name" field, used for dumping
git-svn-id: https://smali.googlecode.com/svn/trunk@63 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-03 04:47:30 +00:00
JesusFreke@JesusFreke.com
63098c01c4 - fix the getValueArg() calculation for several types of encoded value sub fields
- change the placement logic in encoded value to get the value arg from the sub field's getValueArg(), instead of calculating it itself
- fixed FloatEncodedValueSubField's getValueType() to return VALUE_FLOAT instead of VALUE_LONG

git-svn-id: https://smali.googlecode.com/svn/trunk@62 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-03 04:45:59 +00:00
JesusFreke@JesusFreke.com
c7a1ff2452 Sort the individual name/value pairs in an annotation by name
git-svn-id: https://smali.googlecode.com/svn/trunk@61 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-03 04:42:37 +00:00
JesusFreke@JesusFreke.com
9b649b5efc Fixed test to use getTypeDescriptor() instead of toString()
git-svn-id: https://smali.googlecode.com/svn/trunk@60 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-03 04:40:20 +00:00
JesusFreke@JesusFreke.com
b0b76a1924 Fixed an issue where the AnnotationSetRefList section didn't have a corresponding map entry
git-svn-id: https://smali.googlecode.com/svn/trunk@59 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-02 07:58:50 +00:00
JesusFreke@JesusFreke.com
76ec9bbc90 Fixed up and moved the basic HelloWorld example, so that it is a console app instead of an android app
git-svn-id: https://smali.googlecode.com/svn/trunk@58 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-02 05:57:20 +00:00
JesusFreke@JesusFreke.com
56c3e45ad4 Fixed an issue with generated dex files that have no field references
git-svn-id: https://smali.googlecode.com/svn/trunk@57 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-02 05:52:15 +00:00
JesusFreke@JesusFreke.com
4fd96cb22d Added the "assembly" plugin to the pom.xml, to allow building a self-contained executable jar, with "mvn assembly:assembly"
git-svn-id: https://smali.googlecode.com/svn/trunk@56 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-02 03:51:59 +00:00
JesusFreke@JesusFreke.com
74c7bd5600 Added a "real" command line front-end, instead of the crappy 1-file test harness I had been using
git-svn-id: https://smali.googlecode.com/svn/trunk@55 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-02 03:50:57 +00:00
JesusFreke@JesusFreke.com
68f6ce0460 Fixed an issue when a .smali file had no class level .source directive
git-svn-id: https://smali.googlecode.com/svn/trunk@54 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-02 03:48:16 +00:00
JesusFreke@JesusFreke.com
219d93dffc added the "annotation" access spec for classes
git-svn-id: https://smali.googlecode.com/svn/trunk@53 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-02 03:47:26 +00:00
JesusFreke@JesusFreke.com
78af43d299 fixed an issue in the AnnotationDirectoryItem construction (was checking the wrong objects - automated refactoring flub most likely)
git-svn-id: https://smali.googlecode.com/svn/trunk@52 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-02 03:45:47 +00:00
JesusFreke@JesusFreke.com
31bb6ff4e7 fixed an issue in the placement of the map section
git-svn-id: https://smali.googlecode.com/svn/trunk@51 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-02 03:42:13 +00:00
JesusFreke@JesusFreke.com
35329727a4 - Added the ability to dexlib to do an annotated dump of the dex file as it is writing it (similiar to the --dump-to functionality in dx)
- Other misc refactoring and cleanup in dexlib

git-svn-id: https://smali.googlecode.com/svn/trunk@50 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-05-31 07:08:04 +00:00
JesusFreke@JesusFreke.com
dbdfc6f468 Added missing AnnotationVisibility.java file, which was missed in the previous commit
git-svn-id: https://smali.googlecode.com/svn/trunk@49 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-05-30 02:12:29 +00:00
JesusFreke@JesusFreke.com
6cbfb8b875 Added support for annotations
git-svn-id: https://smali.googlecode.com/svn/trunk@48 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-05-28 00:44:20 +00:00
JesusFreke@JesusFreke.com
0d16dfbfcc - add support for the .end local directive
- add support for the .restart local directive
- add support for the .prologue directive
- add support for the .epilogue directive
- add support for the "extended" .local directive (i.e. the optional signature)
- add support for the .source directive

git-svn-id: https://smali.googlecode.com/svn/trunk@47 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-05-23 07:57:13 +00:00
JesusFreke@JesusFreke.com
f175e1d987 - changed the syntax for the .catch directive, to get rid of "from", "to" and "using" (too visual basicy)
- added support for the .local directive, which allows you to define a local variable in the debug info (no way to undefine it until ".end local" is implemented)

git-svn-id: https://smali.googlecode.com/svn/trunk@46 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-05-22 06:04:14 +00:00
JesusFreke@JesusFreke.com
66a23e6ecc - Added support for parameter name debug info
- Changed the grammar so that the .registers directive can appear anywhere in the .method, instead of requiring it to be the first thing

git-svn-id: https://smali.googlecode.com/svn/trunk@45 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-05-22 00:42:12 +00:00
JesusFreke@JesusFreke.com
aa7e507bac Added initial support for method level debug info (currently line info only)
git-svn-id: https://smali.googlecode.com/svn/trunk@44 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-05-18 06:45:09 +00:00
JesusFreke@JesusFreke.com
51b326d5a6 Fixed a bug in the logic to read in an EncodedValue
git-svn-id: https://smali.googlecode.com/svn/trunk@43 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-05-18 01:21:00 +00:00
JesusFreke@JesusFreke.com
74a8772861 Only allow a single class level source directive
git-svn-id: https://smali.googlecode.com/svn/trunk@42 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-05-17 21:42:39 +00:00
JesusFreke@JesusFreke.com
73d29aa52f - Added support for .implements directive, to declare interfaces that a class implements
- Added support for the class level .source directive, to set the source file string for the class
- Changed the parser so that the top level directives (.class, .super, .implements, etc.) can appear anywhere in the file in any order, instead of requiring them to be at the front of the file in a specific order
- Added some better error reporting to the parser, and changed the lexer to immediately exit on an error


git-svn-id: https://smali.googlecode.com/svn/trunk@41 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-05-17 21:24:50 +00:00
JesusFreke@JesusFreke.com
05700838d7 Changed the functionality of TryListBuilder so that when adding a catch-all handler, existing catch-all handlers take priority over the catch-all handler being added.
git-svn-id: https://smali.googlecode.com/svn/trunk@40 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-05-16 18:04:50 +00:00
JesusFreke@JesusFreke.com
a77aba807f Added tests for TryListBuilder and fixed several bugs in TryListBuilder
git-svn-id: https://smali.googlecode.com/svn/trunk@39 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-05-16 06:39:25 +00:00
JesusFreke@JesusFreke.com
698a11d2c0 - Added differentiated parsing for the 3 different types of access flags (class, method, field)
- Added support for nearly all access flags (except for the class access flags that are only applicable to inner class annotations)
- Added support for try/catch blocks


git-svn-id: https://smali.googlecode.com/svn/trunk@38 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-05-14 02:02:52 +00:00
JesusFreke@JesusFreke.com
edb11ae910 Cleaned up various TODO comments
git-svn-id: https://smali.googlecode.com/svn/trunk@37 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-05-11 00:44:19 +00:00
JesusFreke@JesusFreke.com
8a116bba98 Changed the implementation details for the sparse-switch and packed-switch pseudo opcodes to use an int[], instead of a List<Integer>.
Also added additional validity checking to SparseSwitchData.make()

git-svn-id: https://smali.googlecode.com/svn/trunk@36 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-05-11 00:40:03 +00:00
JesusFreke@JesusFreke.com
061ba3a71c Added support for packed-switch and sparse-switch opcodes
git-svn-id: https://smali.googlecode.com/svn/trunk@35 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-05-09 20:50:18 +00:00
JesusFreke@JesusFreke.com
b44d0728f2 Added support for the full spectrum of literals
git-svn-id: https://smali.googlecode.com/svn/trunk@34 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-05-08 02:44:58 +00:00
JesusFreke@JesusFreke.com
e414fa5525 Added support for the fill-array-data instruction and associated pseudo-opcode. Currently only arrays of ints are supported
git-svn-id: https://smali.googlecode.com/svn/trunk@33 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-05-06 04:16:56 +00:00
JesusFreke@JesusFreke.com
dc7bac4dd4 Added missing Format files
git-svn-id: https://smali.googlecode.com/svn/trunk@32 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-05-05 06:52:43 +00:00
JesusFreke@JesusFreke.com
bc670e3f49 Added support for Format51l
git-svn-id: https://smali.googlecode.com/svn/trunk@31 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-05-05 06:52:09 +00:00
JesusFreke@JesusFreke.com
e3dab8894f Added support for Format31c
git-svn-id: https://smali.googlecode.com/svn/trunk@30 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-05-05 05:22:42 +00:00
JesusFreke@JesusFreke.com
92a6a2e140 Added support for Format31i
git-svn-id: https://smali.googlecode.com/svn/trunk@29 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-05-04 02:40:18 +00:00
JesusFreke@JesusFreke.com
28f2923f80 Added support for Format22s
git-svn-id: https://smali.googlecode.com/svn/trunk@28 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-05-03 00:16:55 +00:00
JesusFreke@JesusFreke.com
a999b91230 Added support for Format22t
git-svn-id: https://smali.googlecode.com/svn/trunk@27 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-05-02 22:19:45 +00:00
JesusFreke@JesusFreke.com
eb4521d6c7 Added support for opcodes using Format22c, that reference a type
git-svn-id: https://smali.googlecode.com/svn/trunk@26 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-04-27 04:58:31 +00:00
JesusFreke@JesusFreke.com
f61f3789dc Added support for Format22b
git-svn-id: https://smali.googlecode.com/svn/trunk@25 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-04-27 04:42:02 +00:00
JesusFreke@JesusFreke.com
7c63c04853 Added support for Format23x
git-svn-id: https://smali.googlecode.com/svn/trunk@24 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-04-27 03:18:25 +00:00
JesusFreke@JesusFreke.com
7a0895de9b Added support for Format21h
git-svn-id: https://smali.googlecode.com/svn/trunk@23 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-04-27 01:26:46 +00:00