Daniel Grunwald
							
						 
						
							 
							
							
							
								
							
								43b4339bea 
								
							
								 
							
						 
						
							
							
								
								Simplify shift operators (<< and >>).  
							
							 
							
							... 
							
							
 
							
							Based on patch by Pent Ploompuu. 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Grunwald
							
						 
						
							 
							
							
							
								
							
								8beed6aa70 
								
							
								 
							
						 
						
							
							
								
								Fixed type inference for shift operators.  Closes   #239 .  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Grunwald
							
						 
						
							 
							
							
							
								
							
								2783b02007 
								
							
								 
							
						 
						
							
							
								
								Fix   #241 : type analysis causes truncation of integer literals when calculating with types smaller than int32.  
							
							 
							
							
 
							
						 
						
							15 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. 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Alex Lyman
							
						 
						
							 
							
							
							
								
							
								e484d35fe2 
								
							
								 
							
						 
						
							
							
								
								- Altered the InitializerPeepholeTransforms' ArrayInitializer forward-scan to only look at the next instruction: in practice, CSC does not seem to generate code that needs anything more, and there are some questions as to the validity of the looping itself (i.e. what if there is a branch between them?  
							
							 
							
							... 
							
							
 
							
							- Added another test to the InitializerTests, to validate that it handles deeper multi-dimensional arrays (I went 3x3x3 for simplicity) 
							
						 
						
							15 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. 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Pent Ploompuu
							
						 
						
							 
							
							
							
								
							
								007549180d 
								
							
								 
							
						 
						
							
							
								
								Set correct InferredType after decompiling operators with nullable values (needed for LogicNot simplification).  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Pent Ploompuu
							
						 
						
							 
							
							
							
								
							
								24c9e68633 
								
							
								 
							
						 
						
							
							
								
								Simplify shift operators (<< and >>).  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Pent Ploompuu
							
						 
						
							 
							
							
							
								
							
								0abae7a2ad 
								
							
								 
							
						 
						
							
							
								
								Improve decompilation of operations with nullable booleans.  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Pent Ploompuu
							
						 
						
							 
							
							
							
								
							
								83c3696724 
								
							
								 
							
						 
						
							
							
								
								Decompile null coalescing operator for nullable types  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Pent Ploompuu
							
						 
						
							 
							
							
							
								
							
								ca6a283b16 
								
							
								 
							
						 
						
							
							
								
								Fixed variable splitting  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Pent Ploompuu
							
						 
						
							 
							
							
							
								
							
								8f5925f854 
								
							
								 
							
						 
						
							
							
								
								Ldloca support for variable splitting.  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Pent Ploompuu
							
						 
						
							 
							
							
							
								
							
								cd37d3dfd2 
								
							
								 
							
						 
						
							
							
								
								Decompilation of comparisons between nullable operands and constant values  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Pent Ploompuu
							
						 
						
							 
							
							
							
								
							
								341f54833e 
								
							
								 
							
						 
						
							
							
								
								Partial decompilation of math operators with nullable arguments  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								David Srbecký
							
						 
						
							 
							
							
							
								
							
								f9d877b25a 
								
							
								 
							
						 
						
							
							
								
								Remove unreachable return statements.   Closes   #174 .   Closes   #192  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								David Srbecký
							
						 
						
							 
							
							
							
								
							
								de4389cb39 
								
							
								 
							
						 
						
							
							
								
								Do not fall though the end of try-block.  It should never happen in valid IL, but some obfuscators generate such code.   Closes   #164  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								David Srbecký
							
						 
						
							 
							
							
							
								
							
								6fd28e8b6e 
								
							
								 
							
						 
						
							
							
								
								Remove unreachable return statements.   Closes   #174 .   Closes   #192  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								David Srbecký
							
						 
						
							 
							
							
							
								
							
								c31f9232c5 
								
							
								 
							
						 
						
							
							
								
								Do not fall though the end of try-block.  It should never happen in valid IL, but some obfuscators generate such code.   Closes   #164  
							
							 
							
							
 
							
						 
						
							15 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)  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Pent Ploompuu
							
						 
						
							 
							
							
							
								
							
								f7811e69ab 
								
							
								 
							
						 
						
							
							
								
								Added some comments and simplified the pattern matching  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Grunwald
							
						 
						
							 
							
							
							
								
							
								67fcd4ef7d 
								
							
								 
							
						 
						
							
							
								
								Fix NullReferenceException in ILAstOptimizer.RecombineVariables  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Grunwald
							
						 
						
							 
							
							
							
								
							
								f1a34c6a31 
								
							
								 
							
						 
						
							
							
								
								Fix   #202 : Decompilation of multiple catch clauses sharing the same variable name  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Pent Ploompuu
							
						 
						
							 
							
							
							
								
							
								5bc2692ab7 
								
							
								 
							
						 
						
							
							
								
								Boolean logic decompilation improvement refactored to SimplifyTernaryOperator  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Pent Ploompuu
							
						 
						
							 
							
							
							
								
							
								970eaa0da1 
								
							
								 
							
						 
						
							
							
								
								Further improvements to boolean logic decompilation  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Pent Ploompuu
							
						 
						
							 
							
							
							
								
							
								001a5d4cd7 
								
							
								 
							
						 
						
							
							
								
								Improved decompilation quality for expressions involving boolean negations  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Grunwald
							
						 
						
							 
							
							
							
								
							
								17ad27bfac 
								
							
								 
							
						 
						
							
							
								
								Use AnyCPU config for BamlDecompiler.Plugin.  
							
							 
							
							... 
							
							
 
							
							Support 'unbox' opcode in type analysis. 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Grunwald
							
						 
						
							 
							
							
							
								
							
								e59edceccb 
								
							
								 
							
						 
						
							
							
								
								Fix inlining into null coalescing operator.  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Pent Ploompuu
							
						 
						
							 
							
							
							
								
							
								af155c788e 
								
							
								 
							
						 
						
							
							
								
								Type analysis support for operators on nullable values  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								David Srbecký
							
						 
						
							 
							
							
							
								
							
								51eb00aac7 
								
							
								 
							
						 
						
							
							
								
								Remove unreachable code in ILAstBuilder.   Closes   #134 .   Closes   #151 .   Closes   #171 .  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Pent Ploompuu
							
						 
						
							 
							
							
							
								
							
								cb174caab3 
								
							
								 
							
						 
						
							
							
								
								Negation of operators on nullable values is not allowed for correct decompilation  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Pent Ploompuu
							
						 
						
							 
							
							
							
								
							
								fec24cf171 
								
							
								 
							
						 
						
							
							
								
								Improved decompilation correctness for operators on nullable values  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Siegfried Pammer
							
						 
						
							 
							
							
							
								
							
								2b366fbb97 
								
							
								 
							
						 
						
							
							
								
								make pattern for custom short circuit operator invocations more restrictive  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Siegfried Pammer
							
						 
						
							 
							
							
							
								
							
								a929decdeb 
								
							
								 
							
						 
						
							
							
								
								implement basic support for custom short circuit operators + unit test;  fixes   #193  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Grunwald
							
						 
						
							 
							
							
							
								
							
								229218174f 
								
							
								 
							
						 
						
							
							
								
								Inlining: remove the arg_-Variable in catch blocks.  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Grunwald
							
						 
						
							 
							
							
							
								
							
								2d42dd5c57 
								
							
								 
							
						 
						
							
							
								
								Fixed several issues related to [MarshalAs] attributes.  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Grunwald
							
						 
						
							 
							
							
							
								
							
								d362f8d0f6 
								
							
								 
							
						 
						
							
							
								
								Fixed several bugs in the IL disassembler.  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Grunwald
							
						 
						
							 
							
							
							
								
							
								ae873ec18f 
								
							
								 
							
						 
						
							
							
								
								Fixed decompilation of anonymous methods created by the VB compiler.  Closes   #127 .  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Grunwald
							
						 
						
							 
							
							
							
								
							
								4ec92d9a55 
								
							
								 
							
						 
						
							
							
								
								Handle cpobj instruction as stobj(ldobj).  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Grunwald
							
						 
						
							 
							
							
							
								
							
								478035dfd9 
								
							
								 
							
						 
						
							
							
								
								Fix issues introduced when merging  #166 .  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Grunwald
							
						 
						
							 
							
							
							
								
							
								508073d6ac 
								
							
								 
							
						 
						
							
							
								
								Applied some of the optimizations suggested by Kris Vandermotten.  #150  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Ivan Hamilton
							
						 
						
							 
							
							
							
								
							
								b408acccea 
								
							
								 
							
						 
						
							
							
								
								Fix local variable post-increment recognition for split local variables.  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Pent Ploompuu
							
						 
						
							 
							
							
							
								
							
								9c2a58d292 
								
							
								 
							
						 
						
							
							
								
								Simplify operators on nullable values: all comparisons  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Pent Ploompuu
							
						 
						
							 
							
							
							
								
							
								7d3fbfb1cb 
								
							
								 
							
						 
						
							
							
								
								Simplify operators on nullable values: all comparisons with two nullable operands  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Grunwald
							
						 
						
							 
							
							
							
								
							
								d267eb2412 
								
							
								 
							
						 
						
							
							
								
								Fix NullReferenceException when viewing ILAst for a calli instruction.  Closes   #152  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Pent Ploompuu
							
						 
						
							 
							
							
							
								
							
								1628f2870c 
								
							
								 
							
						 
						
							
							
								
								Simplify operators on nullable values: primitive comparisons  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Grunwald
							
						 
						
							 
							
							
							
								
							
								9fdd6539e2 
								
							
								 
							
						 
						
							
							
								
								YieldReturnDecompiler: don't require that class name starts with '<'  
							
							 
							
							... 
							
							
 
							
							http://community.sharpdevelop.net/forums/t/13143.aspx  
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Grunwald
							
						 
						
							 
							
							
							
								
							
								f68775e468 
								
							
								 
							
						 
						
							
							
								
								Revert fix for  #120 . Siegfried found a case where the C# compiler creates a useless variable in debug builds.  
							
							 
							
							... 
							
							
 
							
							We will keep performing dead store removal for all variables. 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Grunwald
							
						 
						
							 
							
							
							
								
							
								f12371e0e1 
								
							
								 
							
						 
						
							
							
								
								Consistently use the full MIT license header on source files.  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Grunwald
							
						 
						
							 
							
							
							
								
							
								5f069c4ea8 
								
							
								 
							
						 
						
							
							
								
								Perform dead store removal only for generated variables.  Closes   #120 .  
							
							 
							
							
 
							
						 
						
							15 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Grunwald
							
						 
						
							 
							
							
							
								
							
								1e6cc8f8b1 
								
							
								 
							
						 
						
							
							
								
								Fixed bugs with collection initializers.  
							
							 
							
							
 
							
						 
						
							15 years ago