1. 05 5月, 2016 1 次提交
  2. 12 2月, 2016 1 次提交
    • D
      Fix Code Model race for real this time · d9ab6eb1
      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);
      }
      ```
      d9ab6eb1
  3. 11 2月, 2016 1 次提交
  4. 30 11月, 2015 2 次提交
  5. 16 10月, 2015 1 次提交
  6. 12 10月, 2015 3 次提交
  7. 10 10月, 2015 1 次提交
  8. 07 10月, 2015 1 次提交
  9. 07 7月, 2015 1 次提交
  10. 08 5月, 2015 1 次提交
  11. 10 4月, 2015 1 次提交
  12. 28 3月, 2015 2 次提交
  13. 26 3月, 2015 1 次提交
    • P
      Namespace changes · d7ddb407
      Paul Harrington 提交于
      Moved IComWrapperFactory to a separate file.
      Moved IComWrapper and IComWrapperFactory to the Shell.Interop namespace.
      d7ddb407
  14. 24 3月, 2015 1 次提交
  15. 28 2月, 2015 1 次提交
    • B
      Code formatter run · ae1aeb41
      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
      ae1aeb41
  16. 13 2月, 2015 1 次提交
    • H
      fix COM interface definition · 1fd7453d
      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.
      1fd7453d
  17. 31 1月, 2015 1 次提交