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:
authorMikayla Hutchinson <m.j.hutchinson@gmail.com>2017-03-28 00:22:20 +0300
committerMikayla Hutchinson <m.j.hutchinson@gmail.com>2017-03-28 00:22:20 +0300
commit53246f4bbf9e320e22f20558d390fb215cf2e56b (patch)
treec85fe3418d5a4eb0aeb1f378f207b73a7f8d3f27 /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem
parent8b9a5a3bc3d0e26dc5bc458428be3c10713850d3 (diff)
[Ide] Unbreak MetadataReferenceCache
And add notes about what it's doing wrong and how to fix it
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem')
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MetadataReferenceCache.cs5
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopWorkspace.cs4
2 files changed, 7 insertions, 2 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MetadataReferenceCache.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MetadataReferenceCache.cs
index c2919e190e..887ea5e1cd 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MetadataReferenceCache.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MetadataReferenceCache.cs
@@ -33,7 +33,8 @@ using System.Threading;
using System.Reflection;
namespace MonoDevelop.Ide.TypeSystem
-{
+{
+ //FIXME: this mechanism is not correct, we should be implementing IMetadataService instead
static class MetadataReferenceCache
{
static Dictionary<string, MetadataReferenceCacheItem> cache = new Dictionary<string, MetadataReferenceCacheItem> ();
@@ -94,7 +95,7 @@ namespace MonoDevelop.Ide.TypeSystem
static MetadataReferenceCache ()
{
- timer = new Timer ((o) => CheckForChanges (), null, 5000, 5000);
+ timer = new Timer ((o) => Runtime.RunInMainThread ((Action)CheckForChanges), null, 5000, 5000);
}
//TODO: Call this method when focus returns to MD or even better use FileSystemWatcher
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopWorkspace.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopWorkspace.cs
index 7078175623..83244f8cc5 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopWorkspace.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopWorkspace.cs
@@ -1143,6 +1143,10 @@ namespace MonoDevelop.Ide.TypeSystem
case ApplyChangesKind.AddDocument:
case ApplyChangesKind.RemoveDocument:
case ApplyChangesKind.ChangeDocument:
+ //HACK: we don't actually support adding and removing metadata references from project
+ //however, our MetadataReferenceCache currently depends on (incorrectly) using TryApplyChanges
+ case ApplyChangesKind.AddMetadataReference:
+ case ApplyChangesKind.RemoveMetadataReference:
return true;
default:
return false;