55 Commits
Author SHA1 Message Date
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