- 05 5月, 2016 1 次提交
-
-
由 Bart Koelman 提交于
-
- 12 2月, 2016 1 次提交
-
-
由 Dustin Campbell 提交于
I thought I'd fixed this subtle race with PR #8607. After all, the check-in tests were passing and it passed locally on my machine. However, it was still failing consistently on the build server. Finally, I noticed that the only test passes that were failing were on x86 *Release* (insert sound of forehead being smacked). After compiling Release, I could reproduce the problem locally. It turns out that this was a race with GC. In a previous fix, when adding an element to FileCodeModel's element cache, we would first check to see if the element was already in the cache. If it was in the cache, we'd remove it before adding it. However, the test to see if the element was in the cache called `CleanableWeakComHandleTable.TryGetValue(TKey key, out TValue value)`, which would only return true if `key` was in the cache and `value` was not set to null. In essence, it's defined like so: ```C# public bool TryGetValue(TKey key, out TValue value) { this.AssertIsForeground(); WeakComHandle<TValue, TValue> handle; if (_table.TryGetValue(key, out handle)) { value = handle.ComAggregateObject; return value != null; } value = null; return false; } ``` However, when running in Release, the GC can run a bit more aggresively and `handle.ComAggregatedObject` (a weak reference) could easily be null. The fix is to add a simpler `CleanableWeakComHandleTable.ContainsKey(TKey key)` and use that instead. ```C# public bool ContainsKey(TKey key) { this.AssertIsForeground(); return _table.ContainsKey(key); } ```
-
- 11 2月, 2016 1 次提交
-
-
由 Dustin Campbell 提交于
-
- 30 11月, 2015 2 次提交
-
-
由 Cyrus Najmabadi 提交于
-
由 Cyrus Najmabadi 提交于
-
- 16 10月, 2015 1 次提交
-
-
由 Paul Harrington 提交于
-
- 12 10月, 2015 3 次提交
-
-
由 Dustin Campbell 提交于
-
由 Dustin Campbell 提交于
Fixes #5868 Fixes #5841 * Added another "stress" test that performs 100 operations to catch failures in the element table. * Addressed problem where CleanableWeakComHandleTable.TryGetValue() might incorrectly return true. * Fixed issue in FileCodeModel.GetOrCreateCodeElement() where a node key might not be removed from the element table. * Unskip tests
-
由 Bart Koelman 提交于
-
- 10 10月, 2015 1 次提交
-
-
由 Dustin Campbell 提交于
Fix FileCodeModel's usage of CleanableWeakComHandleTable when an a key is in the table but the value is null
-
- 07 10月, 2015 1 次提交
-
-
由 Dustin Campbell 提交于
-
- 07 7月, 2015 1 次提交
-
-
由 Charles Stoner 提交于
-
- 08 5月, 2015 1 次提交
-
-
由 Tanner Gooding 提交于
-
- 10 4月, 2015 1 次提交
-
-
由 Tanner Gooding 提交于
-
- 28 3月, 2015 2 次提交
-
-
由 Paul Harrington 提交于
-
由 Paul Harrington 提交于
-
- 26 3月, 2015 1 次提交
-
-
由 Paul Harrington 提交于
Moved IComWrapperFactory to a separate file. Moved IComWrapper and IComWrapperFactory to the Shell.Interop namespace.
-
- 24 3月, 2015 1 次提交
-
-
由 Paul Harrington 提交于
-
- 28 2月, 2015 1 次提交
-
-
由 beep boop 提交于
Been almost a month since the code formatter was run so this change was a bit larger than would be expected for a normal (weekly) update. Diffs mostly around: - Whitespace changes - Missing copyright headers - Missing visibility modifiers
-
- 13 2月, 2015 1 次提交
-
-
由 Heejae Chang 提交于
it looks like when we move to GitHub, we manually declared some COM interface defined in VS in roslyn code base and when we do that, we put methods in wrong order. made it to match order of methods in idl.
-
- 31 1月, 2015 1 次提交
-
-
由 beep boop 提交于
-