Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLluis Sanchez Gual <lluis@xamarin.com>2011-08-03 18:53:05 +0400
committerLluis Sanchez Gual <lluis@xamarin.com>2011-08-03 18:53:30 +0400
commit1f68abf81fca824bf129fa77d1bfa9594206d732 (patch)
tree018851ab6f7246ee7a1a285124163b7cd9c85c58 /main/src/core
parent7ef6aa3ec5e1d23d9ef12d1f09ebd5b39d2c13db (diff)
Fix stack overflow when creating a project (bug #160)
Diffstat (limited to 'main/src/core')
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs4
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetAssemblyProject.cs2
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetProject.cs13
3 files changed, 12 insertions, 7 deletions
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs
index 6e1ef2a5d0..0ad32b4a93 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs
@@ -401,7 +401,7 @@ namespace MonoDevelop.Projects.Formats.MSBuild
//determine the default target framework from the project type's default
//overridden by the components in the project
- var def = dotNetProject.GetDefaultTargetFrameworkId (GetFileFormat ());
+ var def = dotNetProject.GetDefaultTargetFrameworkForFormat (GetFileFormat ());
targetFx = new TargetFrameworkMoniker (
string.IsNullOrEmpty (frameworkIdentifier)? def.Identifier : frameworkIdentifier,
string.IsNullOrEmpty (frameworkVersion)? def.Version : frameworkVersion,
@@ -888,7 +888,7 @@ namespace MonoDevelop.Projects.Formats.MSBuild
if (dotNetProject != null) {
var moniker = dotNetProject.TargetFramework.Id;
bool supportsMultipleFrameworks = TargetFormat.FrameworkVersions.Length > 0;
- var def = dotNetProject.GetDefaultTargetFrameworkId (GetFileFormat ());
+ var def = dotNetProject.GetDefaultTargetFrameworkForFormat (GetFileFormat ());
bool isDefaultIdentifier = def.Identifier == moniker.Identifier;
bool isDefaultVersion = isDefaultIdentifier && def.Version == moniker.Version;
bool isDefaultProfile = isDefaultVersion && def.Profile == moniker.Profile;
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetAssemblyProject.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetAssemblyProject.cs
index 0bc016e80a..e1a6f5619d 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetAssemblyProject.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetAssemblyProject.cs
@@ -57,7 +57,7 @@ namespace MonoDevelop.Projects
return base.SupportsFramework (framework);
}
- public override TargetFrameworkMoniker GetDefaultTargetFrameworkId (FileFormat format)
+ public override TargetFrameworkMoniker GetDefaultTargetFrameworkForFormat (FileFormat format)
{
switch (format.Id) {
case "MSBuild05":
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetProject.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetProject.cs
index 8504568b49..b801a7c257 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetProject.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetProject.cs
@@ -284,7 +284,7 @@ namespace MonoDevelop.Projects
public TargetFramework TargetFramework {
get {
if (targetFramework == null) {
- var id = newProjectTargetFrameworkId ?? GetDefaultTargetFrameworkId (FileFormat);
+ var id = newProjectTargetFrameworkId ?? GetDefaultTargetFrameworkId ();
targetFramework = Runtime.SystemAssemblyService.GetTargetFramework (id);
}
return targetFramework;
@@ -293,7 +293,7 @@ namespace MonoDevelop.Projects
if (!SupportsFramework (value))
throw new ArgumentException ("Project does not support framework '" + value.Id.ToString () +"'");
if (value == null)
- value = Runtime.SystemAssemblyService.GetTargetFramework (GetDefaultTargetFrameworkId (FileFormat));
+ value = Runtime.SystemAssemblyService.GetTargetFramework (GetDefaultTargetFrameworkForFormat (FileFormat));
if (value.Id == targetFramework.Id)
return;
bool updateReferences = targetFramework != null;
@@ -308,8 +308,13 @@ namespace MonoDevelop.Projects
get { return Runtime.SystemAssemblyService.DefaultRuntime; }
}
- public abstract TargetFrameworkMoniker GetDefaultTargetFrameworkId (FileFormat format);
+ public virtual TargetFrameworkMoniker GetDefaultTargetFrameworkId ()
+ {
+ return Services.ProjectService.DefaultTargetFramework.Id;
+ }
+ public abstract TargetFrameworkMoniker GetDefaultTargetFrameworkForFormat (FileFormat format);
+
public IAssemblyContext AssemblyContext {
get {
if (composedAssemblyContext == null) {
@@ -742,7 +747,7 @@ namespace MonoDevelop.Projects
// Make sure the fx version is sorted out before saving
// to avoid changes in project references while saving
if (targetFramework == null)
- targetFramework = Runtime.SystemAssemblyService.GetTargetFramework (GetDefaultTargetFrameworkId (FileFormat));
+ targetFramework = Runtime.SystemAssemblyService.GetTargetFramework (GetDefaultTargetFrameworkForFormat (FileFormat));
base.OnSave (monitor);
}