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. 22
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/ProjectContent/DefaultProjectContent.cs

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

@ -711,9 +711,11 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -711,9 +711,11 @@ namespace ICSharpCode.SharpDevelop.Dom
}
}
}
Dictionary<string, NamespaceStruct> dict = GetNamespaces(language);
foreach (var namespaceStruct in dict.Values) {
AddNamespaceStructContents(list, namespaceStruct, language, lookInReferences);
lock (namespaces) {
Dictionary<string, NamespaceStruct> dict = GetNamespaces(language);
foreach (var namespaceStruct in dict.Values) {
AddNamespaceStructContents(list, namespaceStruct, language, lookInReferences);
}
}
}
@ -735,10 +737,12 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -735,10 +737,12 @@ namespace ICSharpCode.SharpDevelop.Dom
}
}
Dictionary<string, NamespaceStruct> dict = GetNamespaces(language);
if (dict.ContainsKey(nameSpace)) {
NamespaceStruct ns = dict[nameSpace];
AddNamespaceStructContents(list, ns, language, lookInReferences);
lock (namespaces) {
Dictionary<string, NamespaceStruct> dict = GetNamespaces(language);
if (dict.ContainsKey(nameSpace)) {
NamespaceStruct ns = dict[nameSpace];
AddNamespaceStructContents(list, ns, language, lookInReferences);
}
}
}
@ -812,7 +816,9 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -812,7 +816,9 @@ namespace ICSharpCode.SharpDevelop.Dom
}
}
return GetNamespaces(language).ContainsKey(name);
lock (namespaces) {
return GetNamespaces(language).ContainsKey(name);
}
}
bool MatchesRequest(SearchTypeRequest request, ref SearchTypeResult result)

Loading…
Cancel
Save