|
|
@ -328,18 +328,21 @@ namespace Decompiler |
|
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
#region Arrays
|
|
|
|
#region Arrays
|
|
|
|
case Code.Newarr: |
|
|
|
case Code.Newarr: |
|
|
|
{ |
|
|
|
|
|
|
|
var ace = new Ast.ArrayCreateExpression(); |
|
|
|
|
|
|
|
ace.Type = operandAsTypeRef; |
|
|
|
|
|
|
|
ace.Arguments.Add(arg1); |
|
|
|
|
|
|
|
return ace; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
case (Code)ILCode.InitArray: |
|
|
|
case (Code)ILCode.InitArray: |
|
|
|
{ |
|
|
|
{ |
|
|
|
var ace = new Ast.ArrayCreateExpression(); |
|
|
|
var ace = new Ast.ArrayCreateExpression(); |
|
|
|
ace.Type = operandAsTypeRef; |
|
|
|
ace.Type = operandAsTypeRef; |
|
|
|
ace.Initializer = new ArrayInitializerExpression(); |
|
|
|
ComposedType ct = operandAsTypeRef as ComposedType; |
|
|
|
ace.Initializer.Elements.AddRange(args); |
|
|
|
if (ct != null) { |
|
|
|
|
|
|
|
// change "new (int[,])[10] to new int[10][,]"
|
|
|
|
|
|
|
|
ct.ArraySpecifiers.MoveTo(ace.AdditionalArraySpecifiers); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (opCode == ILCode.InitArray) { |
|
|
|
|
|
|
|
ace.Initializer = new ArrayInitializerExpression(); |
|
|
|
|
|
|
|
ace.Initializer.Elements.AddRange(args); |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
ace.Arguments.Add(arg1); |
|
|
|
|
|
|
|
} |
|
|
|
return ace; |
|
|
|
return ace; |
|
|
|
} |
|
|
|
} |
|
|
|
case Code.Ldlen: |
|
|
|
case Code.Ldlen: |
|
|
|