public static ICollection <ImplementedMember> GetImplementedProperties(this PropertyReference self) { V_0 = new List <ImplementedMember>(); V_1 = self.Resolve(); if (V_1 == null) { return(V_0); } if (V_1.get_GetMethod() != null) { V_2 = V_1.get_GetMethod().GetImplementedMethods().GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = V_2.get_Current(); V_4 = PropertyDefinitionExtensions.GetMethodDeclaringProperty(V_3.get_Member() as MethodReference); if (V_4 == null) { continue; } V_0.Add(new ImplementedMember(V_3.get_DeclaringType(), V_4)); } } finally { if (V_2 != null) { V_2.Dispose(); } } return(V_0); } if (V_1.get_SetMethod() == null) { return(V_0); } V_2 = V_1.get_SetMethod().GetImplementedMethods().GetEnumerator(); try { while (V_2.MoveNext()) { V_5 = V_2.get_Current(); V_6 = PropertyDefinitionExtensions.GetMethodDeclaringProperty(V_5.get_Member() as MethodReference); if (V_6 == null) { continue; } V_0.Add(new ImplementedMember(V_5.get_DeclaringType(), V_6)); } } finally { if (V_2 != null) { V_2.Dispose(); } } return(V_0); }
private List <IntervalConstruct> SortIntervalList(List <IntervalConstruct> intervals) { V_0 = new IntervalConstruct(intervals.get_Item(0)); V_2 = intervals.GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = V_2.get_Current(); dummyVar0 = V_0.get_Children().Add(V_3); } } finally { ((IDisposable)V_2).Dispose(); } stackVariable15 = DFSTBuilder.BuildTree(V_0); V_1 = new List <IntervalConstruct>(); V_4 = stackVariable15.get_ReversePostOrder().GetEnumerator(); try { while (V_4.MoveNext()) { V_5 = V_4.get_Current(); V_1.Add(V_5.get_Construct() as IntervalConstruct); } } finally { ((IDisposable)V_4).Dispose(); } return(V_1); }
public List <SupportedCulture> LoadCultures(string initCulture = null, MixCmsContext _context = null, IDbContextTransaction _transaction = null) { V_0 = ViewModelBase <MixCmsContext, MixCulture, SystemCultureViewModel> .Repository.GetModelList(_context, _transaction); V_1 = new List <SupportedCulture>(); if (V_0.get_IsSucceed()) { V_2 = V_0.get_Data().GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = V_2.get_Current(); stackVariable16 = new SupportedCulture(); stackVariable16.set_Icon(V_3.get_Icon()); stackVariable16.set_Specificulture(V_3.get_Specificulture()); stackVariable16.set_Alias(V_3.get_Alias()); stackVariable16.set_FullName(V_3.get_FullName()); stackVariable16.set_Description(V_3.get_FullName()); stackVariable16.set_Id(V_3.get_Id()); stackVariable16.set_Lcid(V_3.get_Lcid()); stackVariable16.set_IsSupported(string.op_Equality(V_3.get_Specificulture(), initCulture)); V_1.Add(stackVariable16); } } finally { ((IDisposable)V_2).Dispose(); } } return(V_1); }
private IEnumerable <Statement> GetStatements() { V_0 = null; V_2 = this.yieldDeclaringType.get_Methods().GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = V_2.get_Current(); if (!String.op_Equality(V_3.get_Name(), "MoveNext")) { continue; } V_0 = V_3; goto Label0; } } finally { V_2.Dispose(); } Label0: if (V_0 == null || V_0.get_Body() == null) { return(null); } V_1 = V_0.get_Body().DecompileYieldStateMachine(this.decompilationContext, out this.yieldData); if (V_1 == null) { return(null); } return(this.GetStatements(V_1)); }
public static NamespaceHierarchyTree BuildNamespaceHierarchyTree(this AssemblyDefinition self) { V_0 = new HashSet <string>(); V_1 = self.get_Modules().GetEnumerator(); try { while (V_1.MoveNext()) { V_2 = V_1.get_Current().get_Types().GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = V_2.get_Current(); if (String.op_Equality(V_3.get_Namespace(), String.Empty) && String.op_Equality(V_3.get_Name(), "<Module>")) { continue; } dummyVar0 = V_0.Add(V_3.get_Namespace()); } } finally { V_2.Dispose(); } } } finally { V_1.Dispose(); } return(NamespaceHierarchyTreeBuilder.BuildTree(V_0)); }
protected override string ToString(string constructName, HashSet <CFGBlockLogicalConstruct> printedBlocks, LogicalFlowBuilderContext context) { V_0 = new StringBuilder(); dummyVar0 = V_0.AppendLine("PartialCFGConstruct"); dummyVar1 = V_0.AppendLine("{"); dummyVar2 = V_0.AppendLine(String.Format("\t{0}:", this.NodeILOffset(context, this))); V_2 = this.get_LogicalConstructExpressions().GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = V_2.get_Current(); dummyVar3 = V_0.Append("\t"); dummyVar4 = V_0.AppendLine(V_3.ToCodeString()); } } finally { ((IDisposable)V_2).Dispose(); } V_1 = String.Format("\tFollowNode: {0}", this.NodeILOffset(context, this.get_CFGFollowNode())); dummyVar5 = V_0.AppendLine(V_1); dummyVar6 = V_0.AppendLine("}"); dummyVar7 = printedBlocks.Add(this); return(V_0.ToString()); }
public BlockStatement Process(DecompilationContext context, BlockStatement body) { this.context = context.get_MethodContext(); V_0 = context.get_MethodContext().get_Expressions().get_BlockExpressions().GetEnumerator(); try { while (V_0.MoveNext()) { V_1 = V_0.get_Current(); this.parentExpressions.Clear(); V_2 = V_1.get_Value().GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = V_2.get_Current(); this.Visit(V_3); } } finally { if (V_2 != null) { V_2.Dispose(); } } } } finally { ((IDisposable)V_0).Dispose(); } return(body); }
protected ILogicalConstruct[] GetSortedArrayFromCollection <T>(ICollection <T> collection) where T : ISingleEntrySubGraph { V_0 = new ILogicalConstruct[collection.get_Count()]; V_1 = 0; V_2 = collection.GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = (ILogicalConstruct)(object)V_2.get_Current(); stackVariable13 = V_1; V_1 = stackVariable13 + 1; V_0[stackVariable13] = V_3; } } finally { if (V_2 != null) { V_2.Dispose(); } } Array.Sort <ISingleEntrySubGraph>(V_0); return(V_0); }
protected override ClassHierarchyNode FindLowestCommonAncestor(ICollection <ClassHierarchyNode> typeNodes) { V_0 = null; V_1 = -2147483648; V_2 = typeNodes.GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = V_2.get_Current(); V_4 = ExpressionTypeInferer.GetTypeIndex(V_3.get_NodeType()); if (V_4 <= V_1) { continue; } V_1 = V_4; V_0 = V_3; } } finally { if (V_2 != null) { V_2.Dispose(); } } return(V_0); }
private ICollection <int> MergeSearchableEnumerables(IEnumerable <IEnumerable <Instruction> > enumerables) { V_0 = new HashSet <int>(); V_1 = enumerables.GetEnumerator(); try { while (V_1.MoveNext()) { V_2 = V_1.get_Current().GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = V_2.get_Current(); dummyVar0 = V_0.Add(V_3.get_Offset()); } } finally { if (V_2 != null) { V_2.Dispose(); } } } } finally { if (V_1 != null) { V_1.Dispose(); } } return(V_0); }
private IEnumerable <VariableReference> GetVariables(int offset) { if (!this.methodContext.get_StackData().get_InstructionOffsetToUsedStackVariablesMap().TryGetValue(offset, out V_0)) { return(new VariableReference[0]); } V_1 = new List <VariableReference>(); V_2 = V_0.GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = V_2.get_Current(); if (!this.methodContext.get_StackData().get_VariableToDefineUseInfo().ContainsKey(V_3)) { continue; } V_1.Add(V_3); } } finally { ((IDisposable)V_2).Dispose(); } return(V_1); }
private void SetTrueAndFalseSuccessors(CFGBlockLogicalConstruct cfgConditionBlock) { stackVariable1 = cfgConditionBlock.get_TheBlock(); V_0 = stackVariable1.get_Successors()[0]; V_1 = stackVariable1.get_Successors()[1]; V_2 = cfgConditionBlock.get_CFGSuccessors().GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = V_2.get_Current(); if (InstructionBlock.op_Equality(V_3.get_TheBlock(), V_0)) { this.set_TrueCFGSuccessor(V_3); } if (!InstructionBlock.op_Equality(V_3.get_TheBlock(), V_1)) { continue; } this.set_FalseCFGSuccessor(V_3); } } finally { ((IDisposable)V_2).Dispose(); } return; }
private void BuildTryBody(YieldExceptionHandlerInfo handlerInfo) { this.newTryBody = new HashSet <ILogicalConstruct>(); dummyVar0 = this.newTryBody.Add(this.entryOfTry); this.newFinallyBody = null; V_0 = new HashSet <ILogicalConstruct>(); V_1 = new Queue <ILogicalConstruct>(); V_2 = this.entryOfTry.get_SameParentSuccessors().GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = (ILogicalConstruct)V_2.get_Current(); V_1.Enqueue(V_3); } } finally { ((IDisposable)V_2).Dispose(); } while (V_1.get_Count() > 0) { V_4 = V_1.Dequeue(); if (!V_0.Add(V_4) || this.finallyBlocks.Contains(V_4)) { continue; } this.ProcessCurrentNode(handlerInfo, V_1, V_4); } return; }
private bool GetYieldExceptionData() { if ((int)this.theDisposeCFG.get_Blocks().Length == 1) { return(true); } V_0 = this.theDisposeCFG.get_OffsetToInstruction().get_Item(0); if (V_0.get_OpCode().get_Code() != 2) { return(false); } V_0 = this.theDisposeCFG.get_OffsetToInstruction().get_Item(1); if (V_0.get_OpCode().get_Code() != 120 || V_0.get_Operand() as FieldReference == null || !this.CheckAndSaveStateField(V_0.get_Operand() as FieldReference)) { return(false); } V_2 = this.theDisposeCFG.get_SwitchBlocksInformation().get_Values().GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = V_2.get_Current(); if (this.DetermineExceptionHandlingStatesFromSwitchData(V_3)) { continue; } V_4 = false; goto Label0; } } finally { ((IDisposable)V_2).Dispose(); } this.DetermineExceptionHandlingStatesFromCFGBlocks(); V_5 = this.handlerToStatesMap.GetEnumerator(); try { while (V_5.MoveNext()) { V_6 = V_5.get_Current(); if (this.TryCreateYieldExceptionHandler(V_6.get_Value(), V_6.get_Key())) { continue; } V_4 = false; goto Label0; } goto Label1; } finally { ((IDisposable)V_5).Dispose(); } Label0: return(V_4); Label1: return(true); }
private bool GetDisposeMethodCFG() { V_0 = "System.Void System.IDisposable.Dispose()"; V_1 = null; V_2 = this.moveNextMethodDefinition.get_DeclaringType().get_Methods().GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = V_2.get_Current(); if (!String.op_Equality(V_3.GetFullMemberName(null), V_0)) { continue; } V_1 = V_3; goto Label0; } } finally { V_2.Dispose(); } Label0: if (V_1 == null) { return(false); } this.theDisposeCFG = (new ControlFlowGraphBuilder(V_1)).CreateGraph(); return(true); }
private List <MethodDefinition> GetSameNameMethods(TypeDefinition declaringTypeDefinition, MethodReference method, ExpressionCollection arguments) { V_0 = new List <MethodDefinition>(); V_1 = method.Resolve(); if (V_1 == null) { return(V_0); } V_2 = declaringTypeDefinition.get_Methods().GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = V_2.get_Current(); if (String.op_Inequality(V_3.get_Name(), method.get_Name()) || V_3.get_HasParameters() != method.get_HasParameters() || V_3.get_Parameters().get_Count() != method.get_Parameters().get_Count() || (object)V_3 == (object)V_1 || V_3.get_HasGenericParameters() != V_1.get_HasGenericParameters() || !this.ArgumentsMatchParameters(V_3.get_Parameters(), arguments)) { continue; } V_0.Add(V_3); } } finally { V_2.Dispose(); } return(V_0); }
V_0 = Expression.Parameter(System.Type.GetTypeFromHandle(// // Current member / type: System.Void Mix.Cms.Lib.ViewModels.MixModules.UpdateViewModel::LoadAttributeData(Mix.Cms.Lib.Models.Cms.MixCmsContext,Microsoft.EntityFrameworkCore.Storage.IDbContextTransaction) // Exception in: System.Void LoadAttributeData(Mix.Cms.Lib.Models.Cms.MixCmsContext,Microsoft.EntityFrameworkCore.Storage.IDbContextTransaction) // Specified method is not supported. // // mailto: [email protected] private void LoadAttributeFields(MixCmsContext context, IDbContextTransaction transaction) { if (!string.IsNullOrEmpty(this.get_AttributeData().get_Id())) { this.set_Attributes(new List<Mix.Cms.Lib.ViewModels.MixAttributeFields.UpdateViewModel>()); V_2 = this.get_AttributeData().get_Data().get_Values().GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = V_2.get_Current(); if (V_3.get_Field() == null) { continue; } this.get_Attributes().Add(V_3.get_Field()); } } finally { ((IDisposable)V_2).Dispose(); } } else { stackVariable21 = ViewModelBase<MixCmsContext, MixAttributeSet, Mix.Cms.Lib.ViewModels.MixAttributeSets.UpdateViewModel>.Repository; V_1 = Expression.Parameter(System.Type.GetTypeFromHandle(//
public static IServiceCollection CreateChildContainer(this IServiceProvider serviceProvider, IServiceCollection serviceCollection) { V_0 = new ServiceProviderExtensions.u003cu003ec__DisplayClass0_0(); V_0.serviceProvider = serviceProvider; V_1 = new ServiceCollection(); stackVariable4 = serviceCollection; stackVariable5 = ServiceProviderExtensions.u003cu003ec.u003cu003e9__0_0; if (stackVariable5 == null) { dummyVar0 = stackVariable5; stackVariable5 = new Func<ServiceDescriptor, Type>(ServiceProviderExtensions.u003cu003ec.u003cu003e9.u003cCreateChildContaineru003eb__0_0); ServiceProviderExtensions.u003cu003ec.u003cu003e9__0_0 = stackVariable5; } V_2 = stackVariable4.GroupBy<ServiceDescriptor, Type>(stackVariable5).GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = V_2.get_Current(); if (Type.op_Equality(V_3.get_Key(), Type.GetTypeFromHandle(// // Current member / type: Microsoft.Extensions.DependencyInjection.IServiceCollection OrchardCore.Environment.Shell.Builders.ServiceProviderExtensions::CreateChildContainer(System.IServiceProvider,Microsoft.Extensions.DependencyInjection.IServiceCollection) // Exception in: Microsoft.Extensions.DependencyInjection.IServiceCollection CreateChildContainer(System.IServiceProvider,Microsoft.Extensions.DependencyInjection.IServiceCollection) // Specified method is not supported. // // mailto: [email protected] } }
public static Dictionary <MemberIdentifier, CodeSpan> GenerateMemberMapping(string assemblyFilePath, StringWriter writer, List <WritingInfo> writingInfos) { stackVariable1 = writer.ToString(); V_0 = new Dictionary <MemberIdentifier, CodeSpan>(); V_1 = new TwoDimensionalString(stackVariable1, writer.get_NewLine(), false); V_2 = writingInfos.GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = V_2.get_Current().get_MemberDeclarationToCodePostionMap().GetEnumerator(); try { while (V_3.MoveNext()) { V_4 = V_3.get_Current(); V_5 = V_4.get_Key(); V_6 = V_4.get_Value(); V_7 = ExternallyVisibleDecompilationUtilities.GetSpan(V_1, V_1.TrimStart(V_6)); V_0.Add(ExternallyVisibleDecompilationUtilities.GetIdentifier(assemblyFilePath, V_5), V_7); } } finally { ((IDisposable)V_3).Dispose(); } } } finally { ((IDisposable)V_2).Dispose(); } return(V_0); }
private void RemoveTransitiveEdges() { V_0 = this.GenerateNodeToIndex(); V_1 = this.GeenrateAdjacencyMatrix(V_0); this.WarsawTransitiveClosure(V_1); V_2 = this.inferenceGraph.GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = V_2.get_Current(); V_4 = this.inferenceGraph.GetEnumerator(); try { while (V_4.MoveNext()) { V_5 = V_4.get_Current(); V_6 = this.inferenceGraph.GetEnumerator(); try { while (V_6.MoveNext()) { V_7 = V_6.get_Current(); V_8 = V_0.get_Item(V_3); V_9 = V_0.get_Item(V_5); V_10 = V_0.get_Item(V_7); if (!V_1[V_8, V_9] || !V_1[V_9, V_10] || V_3.get_IsHardNode() && V_7.get_IsHardNode() || !V_3.get_SubTypes().Contains(V_7)) { continue; } this.RemoveSubtype(V_3, V_7); } } finally { if (V_6 != null) { V_6.Dispose(); } } } } finally { if (V_4 != null) { V_4.Dispose(); } } } } finally { if (V_2 != null) { V_2.Dispose(); } } return; }
protected virtual void OnPhiVariableAssigned(int instructionOffset, ClassHierarchyNode variableNode) { V_0 = this.offsetToExpression.get_Item(instructionOffset).get_ExpressionType(); if (V_0 != null) { V_1 = this.GetTypeNode(V_0); V_1.AddSupertype(variableNode); dummyVar1 = this.resultingGraph.Add(V_1); return; } V_2 = this.GetVariables(instructionOffset).GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = V_2.get_Current(); V_1 = this.GetVariableNode(V_3); V_1.AddSupertype(variableNode); dummyVar0 = this.resultingGraph.Add(V_1); } } finally { if (V_2 != null) { V_2.Dispose(); } } return; }
private string GetArgumentsString(Collection <ParameterDefinition> parameters) { if (parameters.get_Count() == 0) { return(String.Empty); } V_0 = new StringBuilder(); dummyVar0 = V_0.Append('('); V_1 = true; V_2 = parameters.GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = V_2.get_Current(); if (!V_1) { dummyVar1 = V_0.Append(','); } V_4 = this.GetParameterTypeRepresentation(V_3.get_ParameterType()); dummyVar2 = V_0.Append(V_4); V_1 = false; } } finally { V_2.Dispose(); } dummyVar3 = V_0.Append(')'); return(V_0.ToString()); }
private ClassHierarchyNode FindGreatestCommonDescendant(ICollection <ClassHierarchyNode> typeNodes) { V_0 = null; V_1 = 0x7fffffff; V_2 = typeNodes.GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = V_2.get_Current(); V_4 = ExpressionTypeInferer.GetTypeIndex(V_3.get_NodeType()); if (V_4 >= V_1) { continue; } V_1 = V_4; V_0 = V_3; } } finally { if (V_2 != null) { V_2.Dispose(); } } return(V_0); }
private Dictionary <PropertyDefinition, Expression> GetPropertyToValueMap(Expression expression) { V_0 = expression as AnonymousObjectCreationExpression; if (V_0 == null || V_0.get_Initializer().get_Expressions().get_Count() != 2) { return(null); } V_1 = new Dictionary <PropertyDefinition, Expression>(); V_2 = V_0.get_Initializer().get_Expressions().GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = (BinaryExpression)V_2.get_Current(); V_1.Add(((AnonymousPropertyInitializerExpression)V_3.get_Left()).get_Property(), V_3.get_Right()); } } finally { if (V_2 != null) { V_2.Dispose(); } } return(V_1); }
V_1 = Expression.Parameter(System.Type.GetTypeFromHandle(// // Current member / type: System.Void Mix.Cms.Lib.ViewModels.MixPosts.UpdateViewModel::LoadAttributes(Mix.Cms.Lib.Models.Cms.MixCmsContext,Microsoft.EntityFrameworkCore.Storage.IDbContextTransaction) // Exception in: System.Void LoadAttributes(Mix.Cms.Lib.Models.Cms.MixCmsContext,Microsoft.EntityFrameworkCore.Storage.IDbContextTransaction) // Specified method is not supported. // // mailto: [email protected] private List<SupportedCulture> LoadCultures(string initCulture = null, MixCmsContext _context = null, IDbContextTransaction _transaction = null) { V_0 = ViewModelBase<MixCmsContext, MixCulture, SystemCultureViewModel>.Repository.GetModelList(_context, _transaction); V_1 = new List<SupportedCulture>(); if (V_0.get_IsSucceed()) { V_2 = V_0.get_Data().GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = new Mix.Cms.Lib.ViewModels.MixPosts.UpdateViewModel.u003cu003ec__DisplayClass219_0(); V_3.u003cu003e4__this = this; V_3.culture = V_2.get_Current(); stackVariable19 = V_1; V_4 = new SupportedCulture(); V_4.set_Icon(V_3.culture.get_Icon()); V_4.set_Specificulture(V_3.culture.get_Specificulture()); V_4.set_Alias(V_3.culture.get_Alias()); V_4.set_FullName(V_3.culture.get_FullName()); V_4.set_Description(V_3.culture.get_FullName()); V_4.set_Id(V_3.culture.get_Id()); V_4.set_Lcid(V_3.culture.get_Lcid()); stackVariable49 = V_4; if (string.op_Equality(V_3.culture.get_Specificulture(), initCulture)) { stackVariable55 = true; } else { stackVariable58 = _context.get_MixPost(); V_5 = Expression.Parameter(System.Type.GetTypeFromHandle(//
private ILogicalConstruct FindFollowNodes(HashSet <ILogicalConstruct> children) { V_0 = new HashSet <ILogicalConstruct>(); V_1 = children.GetEnumerator(); try { while (V_1.MoveNext()) { V_2 = V_1.get_Current().get_AllSuccessors().GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = (ILogicalConstruct)V_2.get_Current(); if (children.Contains(V_3)) { continue; } dummyVar0 = V_0.Add(V_3); } } finally { ((IDisposable)V_2).Dispose(); } } } finally { ((IDisposable)V_1).Dispose(); } return(V_0.FirstOrDefault <ILogicalConstruct>()); }
private void CreateGraph(IEnumerable <IntervalConstruct> intervals) { V_0 = intervals.GetEnumerator(); try { while (V_0.MoveNext()) { V_1 = V_0.get_Current(); V_2 = V_1.get_Children().GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = (ILogicalConstruct)V_2.get_Current(); V_4 = this.GetNodeSuccessors(V_3).GetEnumerator(); try { while (V_4.MoveNext()) { V_5 = V_4.get_Current(); if (!this.nodeToInterval.ContainsKey(V_5) || this.nodeToInterval.get_Item(V_5) == V_1) { continue; } V_6 = this.nodeToInterval.get_Item(V_5); if (V_1.get_SameParentSuccessors().Contains(V_6)) { continue; } dummyVar0 = V_1.get_SameParentSuccessors().Add(V_6); dummyVar1 = V_6.get_SameParentPredecessors().Add(V_1); } } finally { if (V_4 != null) { V_4.Dispose(); } } } } finally { ((IDisposable)V_2).Dispose(); } } } finally { if (V_0 != null) { V_0.Dispose(); } } return; }
private int CountInstructions(IEnumerable <ILogicalConstruct> trueSuccessor) { V_0 = 0; V_1 = trueSuccessor.GetEnumerator(); try { while (V_1.MoveNext()) { V_2 = V_1.get_Current().get_CFGBlocks().GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = V_2.get_Current(); V_4 = 0; if (!this.blockToInstructionsCount.ContainsKey(V_3.get_TheBlock().get_First().get_Offset())) { V_5 = V_3.get_TheBlock().GetEnumerator(); try { while (V_5.MoveNext()) { dummyVar0 = V_5.get_Current(); V_4 = V_4 + 1; } } finally { if (V_5 != null) { V_5.Dispose(); } } this.blockToInstructionsCount.Add(V_3.get_TheBlock().get_First().get_Offset(), V_4); } else { V_4 = this.blockToInstructionsCount.get_Item(V_3.get_TheBlock().get_First().get_Offset()); } V_0 = V_0 + V_4; } } finally { ((IDisposable)V_2).Dispose(); } } } finally { if (V_1 != null) { V_1.Dispose(); } } return(V_0); }
private void MergeWithSingleChild() { V_0 = false; do { V_1 = null; V_2 = this.inferenceGraph.GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = V_2.get_Current(); if (V_3.get_IsHardNode() || V_3.get_CanAssignTo().get_Count() != 1 || V_3.get_SubTypes().get_Count() != 0) { continue; } V_4 = null; V_5 = V_3.get_CanAssignTo().GetEnumerator(); try { if (V_5.MoveNext()) { V_4 = V_5.get_Current(); } } finally { if (V_5 != null) { V_5.Dispose(); } } stackVariable27 = new ClassHierarchyNode[2]; stackVariable27[0] = V_3; stackVariable27[1] = V_4; V_1 = (ICollection <ClassHierarchyNode>)stackVariable27; V_0 = true; goto Label0; } } finally { if (V_2 != null) { V_2.Dispose(); } } Label0: if (!V_0) { continue; } this.MergeNodes(V_1); }while (V_0); return; }
public void MergeNodes(HashSet <ISingleEntrySubGraph> constructs, ISingleEntrySubGraph originalEntry, ISingleEntrySubGraph newConstruct) { V_0 = this.constructToNodeMap.get_Item(originalEntry); stackVariable5 = new DTNode(newConstruct); stackVariable5.set_Predecessor(V_0.get_Predecessor()); V_1 = stackVariable5; V_1.get_DominanceFrontier().UnionWith(V_0.get_DominanceFrontier()); dummyVar0 = V_1.get_DominanceFrontier().Remove(V_0); if (V_1.get_Predecessor() != null) { dummyVar1 = V_1.get_Predecessor().get_TreeEdgeSuccessors().Remove(V_0); dummyVar2 = V_1.get_Predecessor().get_TreeEdgeSuccessors().Add(V_1); } V_2 = constructs.GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = V_2.get_Current(); dummyVar3 = this.constructToNodeMap.Remove(V_3); } } finally { ((IDisposable)V_2).Dispose(); } V_4 = this.constructToNodeMap.GetEnumerator(); try { while (V_4.MoveNext()) { V_5 = V_4.get_Current(); if (V_5.get_Value().get_Predecessor() != null && constructs.Contains(V_5.get_Value().get_Predecessor().get_Construct())) { V_5.get_Value().set_Predecessor(V_1); dummyVar4 = V_1.get_TreeEdgeSuccessors().Add(V_5.get_Value()); } if (!V_5.get_Value().get_DominanceFrontier().Remove(V_0)) { continue; } dummyVar5 = V_5.get_Value().get_DominanceFrontier().Add(V_1); } } finally { ((IDisposable)V_4).Dispose(); } if (this.get_RootConstruct() == originalEntry) { this.set_RootConstruct(newConstruct); } this.constructToNodeMap.Add(newConstruct, V_1); return; }