Browse Source

Fixed thread-safety issue in DefaultProjectContent (possible cause of crash #495)

pull/14/head 4.0.0
Daniel Grunwald 15 years ago
parent
commit
dce2df4ca7
  1. 6
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/ProjectContent/DefaultProjectContent.cs

6
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/ProjectContent/DefaultProjectContent.cs

@ -711,11 +711,13 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -711,11 +711,13 @@ namespace ICSharpCode.SharpDevelop.Dom
}
}
}
lock (namespaces) {
Dictionary<string, NamespaceStruct> dict = GetNamespaces(language);
foreach (var namespaceStruct in dict.Values) {
AddNamespaceStructContents(list, namespaceStruct, language, lookInReferences);
}
}
}
/// <summary>
/// Adds the contents of the specified <paramref name="nameSpace"/> to the <paramref name="list"/>.
@ -735,12 +737,14 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -735,12 +737,14 @@ namespace ICSharpCode.SharpDevelop.Dom
}
}
lock (namespaces) {
Dictionary<string, NamespaceStruct> dict = GetNamespaces(language);
if (dict.ContainsKey(nameSpace)) {
NamespaceStruct ns = dict[nameSpace];
AddNamespaceStructContents(list, ns, language, lookInReferences);
}
}
}
void AddNamespaceStructContents(List<ICompletionEntry> list, NamespaceStruct ns, LanguageProperties language, bool lookInReferences)
{
@ -812,8 +816,10 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -812,8 +816,10 @@ namespace ICSharpCode.SharpDevelop.Dom
}
}
lock (namespaces) {
return GetNamespaces(language).ContainsKey(name);
}
}
bool MatchesRequest(SearchTypeRequest request, ref SearchTypeResult result)
{

Loading…
Cancel
Save