Christoph Wille
7a29642b35
Revert "use mono.cecil nuget-package in all projects instead of git sub-module"
...
This reverts commit 6c1efaa2d7
.
9 years ago
Siegfried Pammer
6c1efaa2d7
use mono.cecil nuget-package in all projects instead of git sub-module
9 years ago
Daniel Grunwald
0a481a573c
Add AvalonEdit, NRefactory, and cecil submodules.
10 years ago
Daniel Grunwald
bf5861babd
Fix #650 - C++ switch over `char`/`long` values crashes ILSpy
10 years ago
LordJZ
aeddcf4b80
Enhanced point arithmetic handling
...
This fixes more complex pointer addition/subtraction examples, like PointerArithmetic3 and 4 test cases. Test case 2 is still failing.
Fixes #565
Fixes #400
11 years ago
LordJZ
8b84fc6bb9
Removed incorrect type inference for Add/Sub/Localloc
...
CIL can Add/Sub type * and type I, but C# can add 8 types to a pointer, but not IntPtr.
CIL can Localloc only type U, but C# only int.
11 years ago
Daniel Grunwald
58404e8f9e
AsyncDecompiler: fix some issues with Roslyn-compiled code
11 years ago
Daniel Grunwald
f538d20de5
Fix NullReferenceException in type analysis.
...
Closes #393 , #386 , #403 .
11 years ago
Daniel Grunwald
6d4f2e37fe
Fix crash when decompiling WebSocketBase::SendFrameAsync.
13 years ago
Daniel Grunwald
1b6d1088e8
Fix #346 : incorrect type inference for if statement on ref bool parameter
13 years ago
Daniel Grunwald
8acf17d50a
Improved async/await decompiler.
14 years ago
Daniel Grunwald
2edcaa2c44
Initial implementation of async/await decompiler.
14 years ago
Siegfried Pammer
856c2e823c
implement special cases for enum type inference (addition); closes #299
14 years ago
Siegfried Pammer
91b74550fe
implement special cases for enum type inference; closes #248
14 years ago
Daniel Grunwald
549d2c4dca
Fix #304 Search for enum underlying type is incorrect
14 years ago
Daniel Grunwald
0010be6add
Fixed decompiling "new byte[length]" where length is a long.
14 years ago
Pent Ploompuu
8490b4cfd5
Restrict variable splitting in case of nondeterministic ldloca opcodes.
14 years ago
Zohar Kelrich
470caaa6bb
Fix #278 : Decompiling generic multidimensional array access throws exception
14 years ago
Pent Ploompuu
fad596bc4b
Fix type casting regression by improving type analysis of ILCode.Box
14 years ago
Pent Ploompuu
ee0f43ad38
Compound assignment support for lifted operators
14 years ago
Pent Ploompuu
e5c8b06e1c
Fixed TernaryOp and NullCoalescing type analysis.
14 years ago
Daniel Grunwald
3fad5cb76b
Fix #249 : Object Initializer not detected for value types
14 years ago
Pent Ploompuu
587c36bea2
Type analysis support for the remaining lifted operators
14 years ago
Daniel Grunwald
3020bc9ce8
Fixed type analysis for right shift operator.
14 years ago
Daniel Grunwald
8beed6aa70
Fixed type inference for shift operators. Closes #239 .
14 years ago
Daniel Grunwald
2783b02007
Fix #241 : type analysis causes truncation of integer literals when calculating with types smaller than int32.
14 years ago
Daniel Grunwald
6c94092dc5
Fixed ILAstOptimizer.CanBeExpressionStatement to include more types of assignments.
...
Fixed TypeAnalysis.IsEnum so that arrays of enums are not considered to be enums.
14 years ago
Alex Lyman
9faee0ad8d
- Modified the InitializerPeepholeTransforms' Array Initializers to do a forward scan of the block instead of just checking the next instruction. The next-instruction thing breaks down under the case where you have an array-of-arrays (int[][])
...
- Added to the InitializerPeepholeTransforms' Array Initializers to detect the creation of a multi-dimensional array (int[,])
- Modified the ILCode.InitArray contract to take an ArrayType instead of just the element type, and passing with the ArrayType.Dimensions set accordingly.
- AstMethodBodyBuilder now used the ArrayType.Dimensions info to build a tree of ArrayInitializerExpressions from the raw, element-by-element list.
- Fixed OutputVisitor not calling StartNode for EmptyExpressions
Known issues:
- ArrayCreateExpression outputs extra space in the array specifier when using EmptyExpressions, ala: "new int[][, ]"
- The tree of ArrayInitializerExpressions outputs with blank lines before and after each block.
14 years ago
Daniel Grunwald
c339b9270a
Fix crash in disassembler and decompiler when HasPInvokeInfo=true but PInvokeInfo=null (occurs with unmanaged methods in C++/CLI assemblies)
14 years ago
Pent Ploompuu
001a5d4cd7
Improved decompilation quality for expressions involving boolean negations
14 years ago
Daniel Grunwald
17ad27bfac
Use AnyCPU config for BamlDecompiler.Plugin.
...
Support 'unbox' opcode in type analysis.
14 years ago
Pent Ploompuu
af155c788e
Type analysis support for operators on nullable values
14 years ago
Pent Ploompuu
cb174caab3
Negation of operators on nullable values is not allowed for correct decompilation
14 years ago
Pent Ploompuu
fec24cf171
Improved decompilation correctness for operators on nullable values
14 years ago
Siegfried Pammer
a929decdeb
implement basic support for custom short circuit operators + unit test; fixes #193
14 years ago
Daniel Grunwald
f12371e0e1
Consistently use the full MIT license header on source files.
15 years ago
Daniel Grunwald
660505e04d
Introduce 'AddressOf' pseudo-opcode to make the type system aware of inlined value types ( #139 )
15 years ago
Daniel Grunwald
207bb984aa
Implemented support for nested object/collection initializers.
15 years ago
Daniel Grunwald
600c07388e
Implemented object initializers.
15 years ago
Daniel Grunwald
d8fc41e7a9
Add refanytype and refanyval to type analysis.
15 years ago
Daniel Grunwald
1e66e970bf
Add support for mkrefany opcode.
15 years ago
Daniel Grunwald
d550d55560
Fixed 'as' and 'is' operators for value types.
15 years ago
Daniel Grunwald
9ad5124603
Fixed type analysis for collection initializers. Closes #104 .
15 years ago
Daniel Grunwald
fe4b3d44a0
Fixed post-increment operator on fields in generic classes.
15 years ago
Daniel Grunwald
8cb85826fc
Fixed type substitution for arrays. Closes #94 .
15 years ago
Daniel Grunwald
cc0ab56869
Add pre- and post-increment support for properties (both instance and static) and for multi-dimensional arrays.
15 years ago
Daniel Grunwald
d91b56b033
Add support for pre- and post-increment of dereferenced pointers "(*ptr)++".
15 years ago
Daniel Grunwald
4c7a896a84
Implemented post-increment operator. Closes #76 .
15 years ago
Daniel Grunwald
1df82cc3d1
Improved support for compound assignments and the pre-increment operator.
15 years ago
Daniel Grunwald
1cd79a1301
Use type analysis to introduce casts to float/double only where required.
15 years ago