203 Commits (5177c56d88c37a29565ded2bc590d2253fd72344)

Author SHA1 Message Date
Daniel Grunwald 5177c56d88 Reject MoveNext() methods with more than one cachedStateVar. 6 years ago
Daniel Grunwald 3f996ff2c0 Fix #1604: async methods that had no 'await' but were capturing 'this' were not decompiled correctly 6 years ago
Daniel Grunwald b7f0e2e929 Be less aggressive when removing dead code -- some of it may still be interesting to users. 6 years ago
Daniel Grunwald 752f0de978 Further adjustments to transforms now that copy propagation no longer runs. 6 years ago
Daniel Grunwald 6c0216bbb9 Fix assertion in ReduceNestingTransform: after copying the exitInst, it was possible that the old copy of the exitInst became unreachable. 6 years ago
Daniel Grunwald c4cb9df687 Fix switch in loops sometimes detecting an invalid switch body. 6 years ago
Daniel Grunwald 8117dfff4a Fix #1242: Discard unreachable code. 6 years ago
Siegfried Pammer c51aea3601 Fix decompilation of yield return in local functions. 6 years ago
Daniel Grunwald 8cd8a90c22 Fix #1563: `Unexpected return in MoveNext()` when mixed `using` and more than one `yield break` 6 years ago
Daniel Grunwald c56714c607 Fix assertion with async lambdas; fix async local functions. 6 years ago
Daniel Grunwald beed6b5e24 Remove MarkGeneratedVariables() step in AsyncAwaitDecompiler. 6 years ago
Daniel Grunwald ccdabf2325 Fix a bunch of XmlDoc compiler warnings. 6 years ago
Siegfried Pammer bd77b8301f Basic implementation of local functions. 6 years ago
Siegfried Pammer 29527b804e Fix #1392: LoopDetection should take switch block containers into account in IncludeNestedContainers. 6 years ago
Siegfried Pammer ab55086cd7 Use ILRange API in AsyncAwaitDecompiler. 6 years ago
Siegfried Pammer c1fca21e8a Make ILRange field private - introduce public API for IL range manipulation. 6 years ago
Daniel Grunwald f1c8142ce2 PDB generator now can emit "method stepping information" for async functions. 6 years ago
Daniel Grunwald f6aae1f97d Fix #1386: MoveArrayToPointerToPinnedRegionInit: Only consider the pinned variable uses within the PinnedRegion 6 years ago
Daniel Grunwald 1ab11ba7ce DetectPinnedRegions: also add debug step for failed CreatePinnedRegion() calls 6 years ago
Daniel Grunwald da5693e605 Fix #1339: fixed statement not decompiled correctly when pinned variable is reset in finally block 6 years ago
Siegfried Pammer d9952a7e10 #1388: Fix ArgumentOutOfRangeException in AsyncAwaitDecompiler.AnalyzeAwaitBlock. 6 years ago
Daniel Grunwald 47ca51a769 Clarify the meaning of ILVariable.Index 6 years ago
Siegfried Pammer 17d19cd04a Fix #1379: Missing ILRange from yield return FSM. 7 years ago
Siegfried Pammer 455d55dc46 Fix #1343: Extend AwaitInCatchTransform to support catch blocks that leave the block container. 7 years ago
Siegfried Pammer 00a54a278a Fix #1344: Fix GetCodeMappingInfo for nested async FSMs 7 years ago
Daniel Grunwald deb2ceebd8 Fix #970: 'await' decompilation when the awaiter does not implement ICriticalNotifyCompletion 7 years ago
Daniel Grunwald b5ab8a4622 Fix #1338: KeyNotFoundException in SwitchDetection.AnalyzeControlFlow() 7 years ago
Daniel Grunwald e041454987 Add pretty tests for "yield return" and fix some minor bugs: 7 years ago
Daniel Grunwald ed631cc7d3 Fix #1307: some of the blocks made unreachable by the yield-return-transform were not deleted 7 years ago
Daniel Grunwald 5d394b7786 Refactor PR #1303 to make the ConvertBranchAfterYieldReturn logic easier to understand 7 years ago
Wenxuan Zhao 3e937cf7cb
Fix delegate in yield return issue for assembly compiled with Mono 7 years ago
Wenxuan Zhao 9228e0102c
Fix yield return for assembly compiled with Mono 7 years ago
Chicken-Bones e9b766d708 Improve persistence of IL offsets through various transforms. 7 years ago
Chicken-Bones bf17423618 Abort SwitchAnalysis on duplicate condition (redundant code) 7 years ago
Daniel Grunwald f4613de2ba Don't match sub.ovf in SwitchAnalysis. 7 years ago
Chicken-Bones 481e05eabb Better shortcircuit detection to avoid single condition switch statements 7 years ago
Chicken-Bones d8244e347b Select outer-loop continue branches as break targets for switches in nested loops 7 years ago
Chicken-Bones 9f21e6a2b2 Increase max values per switch section 7 years ago
Chicken-Bones eed337c12e Remove dead code when unreachable condition blocks are consumed by SwitchDetection 7 years ago
Chicken-Bones d86f4b4132 Prefer simple if statements over switch with single case block 7 years ago
Chicken-Bones 52a279f861 Restore HighLevelLoopTransform pattern match for loop contents within if body 7 years ago
Chicken-Bones 7017d998d0 Improve switch decompilation in loops via early detection of continue blocks. 7 years ago
Chicken-Bones 1a021635cc Fix detection of switch statements with cases containing a single break; 7 years ago
Chicken-Bones cb4fa90545 Add IL ordering based hint to UseCSharpSwitch 7 years ago
Chicken-Bones 62b2ad4f8d Improve UseCSharpSwitch to reduce over-aggressive use of switch producing poor quality code. 7 years ago
Chicken-Bones 9a3914fca9 Handle roslyn generated sub instructions in partitioned C# switch statements 7 years ago
Siegfried Pammer fc717be0d8 Fix typo in YieldReturnDecompiler 7 years ago
Daniel Grunwald 542e088ceb Fix #1185: assertion with unreachable code in loop detection 7 years ago
Daniel Grunwald c16817ab4e Fix #1186: LoopDetection assertion with unreachable code 7 years ago
Daniel Grunwald ba0a3af3c4 #1195: Fix several issues decompiling SharpSvn.dll (C++/CLI) 7 years ago