diff options
author | Lluis Sanchez Gual <lluis@xamarin.com> | 2011-08-03 18:53:05 +0400 |
---|---|---|
committer | Lluis Sanchez Gual <lluis@xamarin.com> | 2011-08-03 18:53:30 +0400 |
commit | 1f68abf81fca824bf129fa77d1bfa9594206d732 (patch) | |
tree | 018851ab6f7246ee7a1a285124163b7cd9c85c58 /main/src/core | |
parent | 7ef6aa3ec5e1d23d9ef12d1f09ebd5b39d2c13db (diff) |
Fix stack overflow when creating a project (bug #160)
Diffstat (limited to 'main/src/core')
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); } |