Siegfried Pammer
3c2e52854e
DetectPinnedRegions: Inline the stack-slot involved in CustomRefPinPattern so that the following ProcessPinnedRegion call can reuse existing unmanaged pointer variables instead of being forced to create a new variable.
3 years ago
Siegfried Pammer
f98012ec16
DetectPinnedRegions: Support special case where pinned pointer is unused and the compiler optimized out the StopGCTracking-conversion.
3 years ago
Siegfried Pammer
cbcfcf6c2a
IntroduceQueryExpressions: Do not ignore attributes on lambdas
3 years ago
Siegfried Pammer
406f537fbe
Ditch nuspec.template
3 years ago
Siegfried Pammer
5f73bfbb01
Fix Deconstruction for Deconstruct instance methods of value-types.
3 years ago
Siegfried Pammer
e726ae28a5
Fix type equality check in TransformCollectionAndObjectInitializers
3 years ago
Siegfried Pammer
50cfcc214c
DecompilerTypeSystem: Add support for implicit references
3 years ago
Siegfried Pammer
2de6e1fe30
Ignore nullability annotations when comparing types in the case of implicit conversions.
3 years ago
Siegfried Pammer
fe915780ad
Add AssemblyVersion to IModule
3 years ago
Siegfried Pammer
41c99e4727
#2622 : Fix crash in ExpressionBuilder when decompiling object initializer composed of readonly properties.
3 years ago
Christoph Wille
5ff81c25f8
Update (c) for 2022
4 years ago
Daniel Grunwald
db7d507138
Fix #2615 : Overflow check did not work reliably due to fp rounding error
4 years ago
Siegfried Pammer
d98ff730a0
Fix build.
4 years ago
Siegfried Pammer
4aa7f5fc38
Fix #2612 decompilation of newarr with int.MaxValue causes OOME in decompiler.
4 years ago
Siegfried Pammer
00a32e0575
Use AlwaysQualifyMemberReferences = true in Windows Forms InitializeComponent methods.
4 years ago
Siegfried Pammer
e823ed9966
#2594 : Cache LoadedAssembly.GetTargetFrameworkIdAsync, LoadedAssembly.GetRuntimePackAsync, PEFile.Name, PEFile.FullName to improve performance of assembly resolving. This improves performance of the analysis by a factor of 2.
4 years ago
Siegfried Pammer
2a7e9c1d78
#2590 : Fix printing of "Invalid MethodBodyBlock" comments. Make them appear between the braces of the block.
4 years ago
Siegfried Pammer
26183f798b
#2397 : Add TypeSystemExtensions.IsUnmanagedType
4 years ago
Christoph Wille
963a99d330
Update NuGet packages
4 years ago
Siegfried Pammer
518ade7523
Make GetReferenceAssemblyPath pick the closest available version.
4 years ago
David Wengier
52628a219a
Add TypeDefinitionDocuments to custom debug information data
4 years ago
Siegfried Pammer
2646265069
#2565 : Improve GetFileNameForResource: Assume that input is already a filename.
4 years ago
Siegfried Pammer
37456672d7
WholeProjectDecompiler: set segment length for Unix to 255.
4 years ago
Siegfried Pammer
a48f0d311c
Fix #2330 : Add conditional sub directory support
4 years ago
Siegfried Pammer
01e5e70bf7
'override' is only valid outside of interfaces.
4 years ago
Siegfried Pammer
15f49c0079
Add basic support for abstract static members in interfaces.
4 years ago
Siegfried Pammer
bf336d85cf
Fix second issue mentioned in #2565 : resource names such as path/to/file.ext are now properly handled as relative paths.
4 years ago
Siegfried Pammer
849161e362
- Replace DecompilerTextView.CleanUpName with direct uses of WholeProjectDecompiler.CleanUpFileName
...
- Add file extension handling to WholeProjectDecompiler.CleanUpName
- Add WholeProjectDecompiler.SanitizeFileName, which respects file extensions
4 years ago
Daniel Grunwald
787621fb51
Revert "Use Nop instead of InvalidExpression to hold the "goto from catch-block to try-block" comment"
...
This reverts commit 77dcbbee86
.
4 years ago
Daniel Grunwald
cedd8a6bf6
Fix #2480 : Avoid yield-return decompilation if there are unrecognized state assignments in a finally method.
4 years ago
Daniel Grunwald
77dcbbee86
Use Nop instead of InvalidExpression to hold the "goto from catch-block to try-block" comment
4 years ago
Daniel Grunwald
b404bf3aa7
#2480 : avoid crash if ILAst "cannot jump into block container" invariant is violated
4 years ago
Daniel Grunwald
f104233e78
Fix #2388 : Add support for branch from catch-block to try-block (VB `On Error Resume Next`)
4 years ago
Daniel Grunwald
8fb44414c9
Remove unused GenerateConvHelper
4 years ago
Siegfried Pammer
ec6a9afc57
Fix #2448 : Decompiler shows some enum values as hexdecimal instead of decimal
4 years ago
Daniel Grunwald
d0012bf7d8
StatementTransform: Run an expensive invariant check slightly less often.
4 years ago
Daniel Grunwald
9bbb944e97
Avoid crashing on invalid certain forms of invalid metadata (found in obfuscated assemblies)
4 years ago
Daniel Grunwald
47b12a1d9a
Fix #2317 : Crash in ExpressionBuilder.VisitStLoc when storing to a null pointer
4 years ago
Siegfried Pammer
f801059659
TDCU: make sure that copies of display-class variables are validated as well.
4 years ago
Siegfried Pammer
d8bb40b45b
Generate file-scoped namespace declarations, if possible.
4 years ago
Daniel Grunwald
8c508d9bbb
#2445 : Fix `1f/6f` getting printed as `355f / (678f * (float)Math.PI)`
...
Also fix inconsistent float comparisons due to JIT optimizations.
4 years ago
Daniel Grunwald
7f985757a7
Fix #2541 : Add explicit `unchecked()` around non-constant cast of constant to `nint`
4 years ago
Daniel Grunwald
17d323c943
Fix #2557 : Remove incorrect assertion from `ReduceNestingTransform`
...
ILFunctions can appear as statements when the source code has a lambda expression which is immediately discarded.
```
_ = (Action)delegate { ... };
```
4 years ago
Siegfried Pammer
a655e35799
Fix ArgumentNullException in IntroduceUsingDeclarations: ignore unnamed variables for the purpose of conflict resolving.
4 years ago
Siegfried Pammer
35aea3eea7
Slight pattern changes in mcs 5 switch-on-string with case null.
4 years ago
Siegfried Pammer
1826ac031d
#2539 : Add support for yield state machine pattern used by mcs 5.x
4 years ago
Siegfried Pammer
77ceb15e31
Fix build.
4 years ago
Siegfried Pammer
8f6ee052be
Fix #2469 : Add special case for mscorlib and netstandard.dll to DetectTargetFrameworkId
4 years ago
Daniel Grunwald
df339e72fb
Fix DetectPinnedRegions.SplitBlocksAtWritesToPinnedLocals creating blocks without ILRange.
...
These blocks could trigger assertions if LoopDetection was creating a loop BlockContainer from them (BlockContainers have an assertion requiring an ILRange).
Closes #2533 and #2457 .
4 years ago
Daniel Grunwald
583771e012
#2533 : Fix bug in CreatePinnedRegion that could cause pinned regions to be created with the wrong entry point if the original IL had blocks in an unusual order
4 years ago