Vladimir Panteleev
17a70c6c9b
asprogram: Ignore duplicate class names during dependency registration
2016-11-26 21:53:06 +00:00
Vladimir Panteleev
dc01be0604
asprogram: Work around DMD issue 13998
2015-01-04 18:58:44 +00:00
Vladimir Panteleev
0983145a0d
Fix handling of pushbyte argument
2014-10-12 22:25:42 +00:00
Vladimir Panteleev
62ef183d95
Do not attempt to disassemble unreachable code
...
Also, improve handling of disassembly errors -
methods will be partially disassembled as far as possible.
2014-09-03 15:12:26 +00:00
Vladimir Panteleev
a17a03e6f6
asprogram: Work around issue 13420 in DMD 2.066
2014-09-03 15:11:26 +00:00
Vladimir Panteleev
6313739b5e
asprogram: Ignore null parameters in TypeName multinames
2014-02-16 21:03:11 +00:00
Vladimir Panteleev
4251e409a2
asprogram: Track TypeName names as dependencies as well
2013-11-12 18:38:08 +00:00
Vladimir Panteleev
7ad6949b45
asprogram: 64-bit fix
2013-11-12 16:58:59 +00:00
Vladimir Panteleev
9bd472e4f8
asprogram: Remove dead code
2013-11-12 05:43:15 +00:00
Vladimir Panteleev
efada3d5c1
asprogram: Don't emit forward typename references (sort multinames topographically)
2013-11-12 05:19:27 +00:00
Vladimir Panteleev
05d9624f68
asprogram: Unify constant pool logic; sort doubles bitwise
2013-11-12 05:18:30 +00:00
Vladimir Panteleev
4e3d43df5f
64-bit fixes
2012-09-29 14:06:39 +02:00
Vladimir Panteleev
fdb8489382
Method ID debug code
2012-09-04 20:13:59 +03:00
Vladimir Panteleev
d755065785
refid generation overhaul (support non-private homonym namespaces)
2012-09-04 20:13:40 +03:00
Vladimir Panteleev
c2042660f2
Fix metadata handling (caused by error in ABC format specification)
2012-03-15 02:47:48 +02:00
Vladimir Panteleev
b67c0f8751
AStoABC refactoring
2011-10-03 15:23:46 +03:00
Vladimir Panteleev
1f0ef64b83
64-bit fixes
2011-07-25 02:12:22 +03:00
Vladimir Panteleev
62d0756dbc
asprogram: treat out-of-bounds namespace/multiname indices as null
2011-06-16 01:00:36 +03:00
Vladimir Panteleev
296196ff71
Add support for out-of-bounds class/method indices
2011-06-12 18:57:01 +03:00
Vladimir Panteleev
7a92e9fe81
asprogram: fix compiler warning
2011-06-10 12:36:25 +03:00
Vladimir Panteleev
2498673231
Update copyright notices
2011-05-12 08:07:57 +03:00
Vladimir Panteleev
a766cf5919
Emit commented-out method body with raw hex bytes
2011-05-11 04:24:43 +03:00
Vladimir Panteleev
282e8cbfc1
asprogram: Remove enum compiler hack
2011-05-11 01:06:09 +03:00
Vladimir Panteleev
3f9be2b192
Whitespace
2011-04-16 08:25:39 +03:00
Vladimir Panteleev
ac5d4b5e74
disassembler: rewrite the way refids/private namespace names are generated.
...
This will also place nested classes correctly in the directory structure.
2011-04-15 17:37:46 +03:00
Vladimir Panteleev
b80fe48bee
Failing to decode a method body is now not a fatal error
...
Some obfuscators seem to append an orphan method to the end of the file
filled with junk. The disassembly will contain an empty body with a comment
describing the error message.
2011-04-14 13:26:17 +03:00
Vladimir Panteleev
986ea47d03
Use "final switch" for opcode types
2011-04-14 11:50:31 +03:00
Vladimir Panteleev
8ad1f85a45
asprogram: sort faster
2011-03-22 09:18:14 +02:00
Vladimir Panteleev
580a1364d0
Clarify some asserts
2011-03-22 04:39:25 +02:00
Vladimir Panteleev
100f6b6bf4
Port to D2
2011-02-20 20:48:24 +02:00
Vladimir Panteleev
52a2cde1b0
Finish metadata support
2011-02-17 06:48:40 +02:00
Vladimir Panteleev
608a8ca51d
Correctly order classes by dependencies (extends/implements) and reference count
2011-02-17 05:25:49 +02:00
Vladimir Panteleev
d11270a553
A bit of debugging code
2011-02-17 05:25:01 +02:00
Vladimir Panteleev
68a0845c53
Support forward references of typenames
2011-02-17 04:31:04 +02:00
Vladimir Panteleev
824a945247
asprogram: Refactor constant/reference pool code
2011-02-17 02:52:00 +02:00
Vladimir Panteleev
bd8826c5df
Add byte offset to labels
...
This gets rid of previous limitations of labels.
2010-06-30 16:52:34 +03:00
Vladimir Panteleev
c903ab5aff
Correctly encode empty strings and namespace sets
2010-03-22 05:43:17 +02:00
Vladimir Panteleev
c821067b90
Correctly decode empty namespace sets
2010-03-22 05:19:23 +02:00
Vladimir Panteleev
750b16f09c
Whitespace
2010-03-20 18:52:09 +02:00
Vladimir Panteleev
fad01e452e
Adding assert for Reference.get(null)
2010-03-19 23:24:39 +02:00
Vladimir Panteleev
58eeb3cc2d
Adding IntLiteral argument type for pushshort opcode
2010-03-19 23:10:23 +02:00
Vladimir Panteleev
c31c6885ef
Adding NULL_DOUBLE
2010-03-19 21:58:07 +02:00
Vladimir Panteleev
d440f2f5a1
Use final classes instead of 'final:'
2010-03-19 00:11:40 +02:00
Vladimir Panteleev
a72ce67811
Track "orphan" (not in traits hierarchy) classes and methods
2010-03-18 22:25:37 +02:00
Vladimir Panteleev
31492d0e2f
Adding AbcTraitsVisitor and AsTraitsVisitor
2010-03-18 21:17:29 +02:00
Vladimir Panteleev
ba1877188b
Constant pool code cleanup
2010-03-18 01:22:19 +02:00
Vladimir Panteleev
08db5a2eb2
Fix embarassing bug that took 2 days to find
2010-03-17 23:55:59 +02:00
Vladimir Panteleev
1ad940bebf
Sort constant pool values by hits, then value
2010-03-17 23:55:37 +02:00
Vladimir Panteleev
0ea6da0be3
Correctly handle "indexless" values (True/False/Null)
2010-03-17 23:46:59 +02:00
Vladimir Panteleev
dc2ceb6afc
Correctly handle "null" values for ints and uints
2010-03-17 23:46:03 +02:00