948 Commits

Author SHA1 Message Date
JesusFreke@JesusFreke.com
5d738c6107 Added tests for format 20t
git-svn-id: https://smali.googlecode.com/svn/trunk@98 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-05 06:09:42 +00:00
JesusFreke@JesusFreke.com
b617a5f84b Added tests for format 10t
git-svn-id: https://smali.googlecode.com/svn/trunk@97 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-05 06:05:26 +00:00
JesusFreke@JesusFreke.com
88ad74f2c2 Added tests for format 11x
git-svn-id: https://smali.googlecode.com/svn/trunk@96 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-05 05:58:16 +00:00
JesusFreke@JesusFreke.com
6af8f5f476 Added tests for format 11n
git-svn-id: https://smali.googlecode.com/svn/trunk@95 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-05 05:26:32 +00:00
JesusFreke@JesusFreke.com
b4949abb7b Fixed the .source name for Format12x.smali
git-svn-id: https://smali.googlecode.com/svn/trunk@94 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-05 05:22:56 +00:00
JesusFreke@JesusFreke.com
0bc05441fb - Added tests for all opcodes using format 10x and 12x
git-svn-id: https://smali.googlecode.com/svn/trunk@93 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-05 05:18:24 +00:00
JesusFreke@JesusFreke.com
2b4a7ca201 - Added an "Assert" helper class to the junit tests, to allow easier testing of various types
- Changed the relevent tests to use the new Assert helper

git-svn-id: https://smali.googlecode.com/svn/trunk@92 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-05 05:17:23 +00:00
JesusFreke@JesusFreke.com
b03e029611 added an example showing the creation and usage of an interface
git-svn-id: https://smali.googlecode.com/svn/trunk@91 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-05 05:15:24 +00:00
JesusFreke@JesusFreke.com
0900e0040e - Added support for specifying a char literal for various types of instruction
- Fixed a bug preventing the usage of negative float/double literals
- Fixed escape sequences in character literals
- Added source file name to parser error messages
- Fixed an issue where the parser would exit without an error message, when it encountered a bad "top level" token (in the smali_file rule)
- Fixed an issue that prevented the usage of non long/double literals with the the const-wide instruction
- Fixed an issue with the invoke-static/range, where it wouldn't calculate the number of parameter registers correctly, and would erroneously generate an error message

git-svn-id: https://smali.googlecode.com/svn/trunk@90 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-05 05:14:26 +00:00
JesusFreke@JesusFreke.com
5dc3a8d75a - Added a new "p0" style register reference, where p0 indicates the first parameter register, p1 the 2nd parameter register and so forth. This makes it less annoying when you are writing a method and have to add more registers, which would push the parameter registers back.
- Updated the the tests and examples with the new register format, where appropriate

git-svn-id: https://smali.googlecode.com/svn/trunk@89 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-04 06:44:10 +00:00
JesusFreke@JesusFreke.com
468e5d0d1b moved examples
git-svn-id: https://smali.googlecode.com/svn/trunk@88 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-04 06:27:26 +00:00
JesusFreke@JesusFreke.com
b079ef4c2e moved examples
git-svn-id: https://smali.googlecode.com/svn/trunk@87 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-04 06:26:22 +00:00
JesusFreke@JesusFreke.com
3ca2a39dea Deleted old examples
git-svn-id: https://smali.googlecode.com/svn/trunk@86 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-04 05:57:24 +00:00
JesusFreke@JesusFreke.com
e69c8af0ef Fix up how the padding is handled for the special opcodes
git-svn-id: https://smali.googlecode.com/svn/trunk@85 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-04 05:55:36 +00:00
JesusFreke@JesusFreke.com
9c5bb815a0 removed TODO
git-svn-id: https://smali.googlecode.com/svn/trunk@84 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-04 05:55:06 +00:00
JesusFreke@JesusFreke.com
1834b365d6 - changed the comment char from ; to #
- updated the tests and examples to use the new comment style
- changed the lexer error messages to include the source file path

git-svn-id: https://smali.googlecode.com/svn/trunk@83 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-04 05:54:34 +00:00
JesusFreke@JesusFreke.com
e53f5ae41b rename the AnnotationTypes example
git-svn-id: https://smali.googlecode.com/svn/trunk@82 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-04 05:02:24 +00:00
JesusFreke@JesusFreke.com
3c0207bddd re-add the AnnotationTypes example
git-svn-id: https://smali.googlecode.com/svn/trunk@81 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-04 05:01:55 +00:00
JesusFreke@JesusFreke.com
baf5a9205b whitespace
git-svn-id: https://smali.googlecode.com/svn/trunk@80 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-04 04:57:47 +00:00
JesusFreke@JesusFreke.com
c2b3b1457a moved the examples
git-svn-id: https://smali.googlecode.com/svn/trunk@79 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-04 04:39:25 +00:00
JesusFreke@JesusFreke.com
20f261138f Added the junit-tests directory, which contains a junit "Suite" class, and a couple of initial tests
git-svn-id: https://smali.googlecode.com/svn/trunk@78 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-04 04:25:24 +00:00
JesusFreke@JesusFreke.com
2c5bb6ddf8 Changed how the "UnsupportedEncodingException" is handled
git-svn-id: https://smali.googlecode.com/svn/trunk@77 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-04 04:18:55 +00:00
JesusFreke@JesusFreke.com
5eb3d80d87 Fix up how the padding is handled for the special opcodes
git-svn-id: https://smali.googlecode.com/svn/trunk@76 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-04 04:11:09 +00:00
JesusFreke@JesusFreke.com
a7266ebdce redid .equals() for CachedIntegerValueField
git-svn-id: https://smali.googlecode.com/svn/trunk@75 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-04 02:48:06 +00:00
JesusFreke@JesusFreke.com
4561355e99 Changed SignedLeb128 for the register fields to Leb128
git-svn-id: https://smali.googlecode.com/svn/trunk@74 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-04 02:41:26 +00:00
JesusFreke@JesusFreke.com
89063e593b Removed TODO
git-svn-id: https://smali.googlecode.com/svn/trunk@73 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-06-04 02:39:27 +00:00
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