提交 7d519df7 编写于 作者: T Tomáš Matoušek

Merge pull request #1962 from tmat/VSPDBHelpers

Remove PDB helpers from VS
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System;
using System.IO;
using System.Runtime.InteropServices;
using Microsoft.DiaSymReader;
using Roslyn.Test.PdbUtilities;
using Roslyn.Utilities;
namespace Microsoft.VisualStudio.LanguageServices.Implementation.EditAndContinue
{
internal sealed class SymbolReaderProvider : IDisposable
{
private ISymUnmanagedReader _rawReader;
private SymbolReaderProvider(ISymUnmanagedReader rawReader)
{
_rawReader = rawReader;
}
public static unsafe SymbolReaderProvider Create(byte[] pdbImage)
{
Guid corSymReaderSxS = new Guid("0A3976C5-4529-4ef8-B0B0-42EED37082CD");
var rawReader = (ISymUnmanagedReader)Activator.CreateInstance(Type.GetTypeFromCLSID(corSymReaderSxS));
int hr = rawReader.Initialize(new DummyMetadataImport(metadataReaderOpt: null), null, null, new ComStreamWrapper(new MemoryStream(pdbImage)));
Marshal.ThrowExceptionForHR(hr);
return new SymbolReaderProvider(rawReader);
}
public void Dispose()
{
if (_rawReader != null)
{
Marshal.ReleaseComObject(_rawReader);
_rawReader = null;
}
}
public ISymUnmanagedReader SymbolReader
{
get
{
if (_rawReader == null)
{
throw new ObjectDisposedException("SymReader");
}
return _rawReader;
}
}
}
}
......@@ -86,12 +86,6 @@
<Compile Include="..\..\..\Compilers\Helpers\InMemoryAssemblyProvider.cs">
<Link>InMemoryAssemblyProvider.cs</Link>
</Compile>
<Compile Include="..\..\..\Test\PdbUtilities\Shared\DummyMetadataImport.cs">
<Link>Shared\DummyMetadataImport.cs</Link>
</Compile>
<Compile Include="..\..\..\Test\PdbUtilities\Shared\IMetadataImport.cs">
<Link>Shared\IMetadataImport.cs</Link>
</Compile>
<Compile Include="..\..\..\Test\PdbUtilities\Shared\SymUnmanagedReaderExtensions.cs">
<Link>Shared\SymUnmanagedReaderExtensions.cs</Link>
</Compile>
......@@ -322,7 +316,6 @@
<Compile Include="Implementation\EditAndContinue\Interop\IENCSymbolReaderProvider.cs" />
<Compile Include="Implementation\EditAndContinue\Interop\IVsENCRebuildableProjectCfg2.cs" />
<Compile Include="Implementation\EditAndContinue\Interop\IVsENCRebuildableProjectCfg4.cs" />
<Compile Include="Implementation\EditAndContinue\SymbolReaderProvider.cs" />
<Compile Include="Implementation\EditAndContinue\VsENCRebuildableProjectImpl.cs" />
<Compile Include="Implementation\EditAndContinue\VsReadOnlyDocumentTracker.cs" />
<Compile Include="Implementation\Extensions\DocumentExtensions.cs" />
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册