[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