1 Commits (00d01f24ba87ba687acf78389f488bceeab02a14)

Author SHA1 Message Date
Daniel Grunwald 949e7c2378 Move decompiler code into ICSharpCode.Decompiler; add very simple integration with ILSpy. 15 years ago
David Srbecký 36f29f72e5 Moved everything into top-level directory 15 years ago
David Srbecký eed0f0af6c Refactoring the data model 15 years ago
David Srbecký 27d8b0107d Include blocks jumping outside the parent not as being conditionals 15 years ago
David Srbecký 45bedc8d1d Try to reconstruct if statements. The following logic is used: Depending on the value of the condition, the control flow will branch to one of two locations - let's call then 'true entry' and 'false entry'. Nodes reachable *only* from the 'true entry' are assumed to be the 'true' body of the if statement. Similarly, nodes reachable only from the 'false entry' are the 'false' body. Nodes reachable from both 'true entry' and 'false entry' and not part of the if statement and are placed after it. 15 years ago
David Srbecký 356c0b0d2f Completely rewritten the Node tree structure. It became increasingly difficult to maintain the node links (Predecessors, Successors) consistent during transformations. So rather then keeping them consistent I have implemented an algorithm that can calculate the Predecessors or Successors for any given node. There are a few caches on the way so that the calculation does not calculate everything again every time. Affected caches are automatically flushed when a tree structure changes. This is implemented using 'collection with events'. 15 years ago