[prev in list] [next in list] [prev in thread] [next in thread] 

List:       mono-patches
Subject:    [Mono-patches] [mono/monodevelop] 8c1832fe: [NRefactory] Fixed bug in control flow graph builder.
From:       Mike_Krüger_(mkrueger () xamarin ! com) <mono-patches () lists ! ximian ! c
Date:       2012-03-30 14:48:01
Message-ID: 000001366413cf66-68b162fe-f404-49e3-8395-1cb6c66e03a5-000000 () email ! amazonses ! com
[Download RAW message or body]


   Branch: refs/heads/newresolver
     Home: https://github.com/mono/monodevelop
  Compare: https://github.com/mono/monodevelop/compare/7f1033a...8c1832f

   Commit: 8c1832fe37a457d7e17594045cbeeec0be9f8161
   Author: Mike Krüger <mkrueger@xamarin.com> (mkrueger)
     Date: 2012-03-30 14:47:35 GMT
      URL: https://github.com/mono/monodevelop/commit/8c1832fe37a457d7e17594045cbeeec0be9f8161


[NRefactory] Fixed bug in control flow graph builder.

Changed paths:
  M main/contrib/ICSharpCode.NRefactory.CSharp/Analysis/ControlFlow.cs

Modified: main/contrib/ICSharpCode.NRefactory.CSharp/Analysis/ControlFlow.cs
===================================================================
@@ -1,4 +1,4 @@
-// Copyright (c) AlphaSierraPapa for the SharpDevelop Team
+// Copyright (c) AlphaSierraPapa for the SharpDevelop Team
 // 
 // Permission is hereby granted, free of charge, to any person obtaining a copy of \
this  // software and associated documentation files (the "Software"), to deal in the \
Software @@ -403,24 +403,25 @@ public override ControlFlowNode \
VisitExpressionStatement(ExpressionStatement exp  return \
CreateConnectedEndNode(expressionStatement, data);  }
 			
-			public override ControlFlowNode VisitIfElseStatement(IfElseStatement \
ifElseStatement, ControlFlowNode data) +			public override ControlFlowNode \
VisitIfElseStatement (IfElseStatement ifElseStatement, ControlFlowNode data)  {
-				bool? cond = builder.EvaluateCondition(ifElseStatement.Condition);
-				ControlFlowNode trueBegin = \
builder.CreateStartNode(ifElseStatement.TrueStatement); +				bool? cond = \
builder.EvaluateCondition (ifElseStatement.Condition); +				ControlFlowNode trueBegin \
= builder.CreateStartNode (ifElseStatement.TrueStatement);  if (cond != false)
-					Connect(data, trueBegin, ControlFlowEdgeType.ConditionTrue);
-				ControlFlowNode trueEnd = ifElseStatement.TrueStatement.AcceptVisitor(this, \
trueBegin); +					Connect (data, trueBegin, ControlFlowEdgeType.ConditionTrue);
+				ControlFlowNode trueEnd = ifElseStatement.TrueStatement.AcceptVisitor (this, \
trueBegin);  ControlFlowNode falseEnd;
 				if (ifElseStatement.FalseStatement.IsNull) {
 					falseEnd = null;
 				} else {
-					ControlFlowNode falseBegin = \
builder.CreateStartNode(ifElseStatement.FalseStatement); +					ControlFlowNode \
falseBegin = builder.CreateStartNode (ifElseStatement.FalseStatement);  if (cond != \
                true)
-						Connect(data, falseBegin, ControlFlowEdgeType.ConditionFalse);
-					falseEnd = ifElseStatement.FalseStatement.AcceptVisitor(this, falseBegin);
+						Connect (data, falseBegin, ControlFlowEdgeType.ConditionFalse);
+					falseEnd = ifElseStatement.FalseStatement.AcceptVisitor (this, falseBegin);
 				}
-				ControlFlowNode end = builder.CreateEndNode(ifElseStatement);
-				Connect(trueEnd, end);
+				ControlFlowNode end = builder.CreateEndNode (ifElseStatement);
+				if (trueEnd != null)
+					Connect (trueEnd, end);
 				if (falseEnd != null) {
 					Connect(falseEnd, end);
 				} else if (cond != true) {
_______________________________________________
Mono-patches maillist  -  Mono-patches@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-patches


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic