Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public SymUnmanagedAsyncStepInfo(int yieldOffset, int resumeOffset, int resumeMe
ResumeMethod = resumeMethod;
}

public override bool Equals(object obj)
public override bool Equals(object? obj)
{
return obj is SymUnmanagedAsyncStepInfo && Equals((SymUnmanagedAsyncStepInfo)obj);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public static string GetName(this ISymUnmanagedConstant constant)
}

return BufferToString(GetItems(constant,
(ISymUnmanagedConstant a, int b, out int c, char[] d) => a.GetName(b, out c, d)));
(ISymUnmanagedConstant a, int b, out int c, char[] d) => a.GetName(b, out c, d))!);
}

public static object GetValue(this ISymUnmanagedConstant constant)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public static string GetName(this ISymUnmanagedDocument document)
}

return BufferToString(GetItems(document,
(ISymUnmanagedDocument a, int b, out int c, char[] d) => a.GetUrl(b, out c, d)));
(ISymUnmanagedDocument a, int b, out int c, char[] d) => a.GetUrl(b, out c, d))!);
}

public static byte[] GetChecksum(this ISymUnmanagedDocument document)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ public static IEnumerable<SymUnmanagedSequencePoint> GetSequencePoints(this ISym
}
}

public static ISymUnmanagedAsyncMethod AsAsyncMethod(this ISymUnmanagedMethod method)
public static ISymUnmanagedAsyncMethod? AsAsyncMethod(this ISymUnmanagedMethod method)
{
var asyncMethod = method as ISymUnmanagedAsyncMethod;
if (asyncMethod == null)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public static string GetName(this ISymUnmanagedNamespace @namespace)
}

return BufferToString(GetItems(@namespace,
(ISymUnmanagedNamespace a, int b, out int c, char[] d) => a.GetName(b, out c, d)));
(ISymUnmanagedNamespace a, int b, out int c, char[] d) => a.GetName(b, out c, d))!);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ partial class SymUnmanagedExtensions
// MSCUSTOMDEBUGINFO in Dev10.
private const string CdiAttributeName = "MD2";

public static void UpdateSymbolStore(this ISymUnmanagedReader reader, Stream stream, string fileName = null)
public static void UpdateSymbolStore(this ISymUnmanagedReader reader, Stream stream, string? fileName = null)
{
if (reader == null)
{
Expand All @@ -26,7 +26,7 @@ public static void UpdateSymbolStore(this ISymUnmanagedReader reader, Stream str
ThrowExceptionForHR(reader.UpdateSymbolStore(fileName, SymUnmanagedStreamFactory.CreateStream(stream)));
}

public static void Initialize(this ISymUnmanagedReader3 reader, Stream stream, object metadataImporter, string fileName = null, string searchPath = null)
public static void Initialize(this ISymUnmanagedReader3 reader, Stream stream, object metadataImporter, string? fileName = null, string? searchPath = null)
{
if (reader == null)
{
Expand All @@ -39,7 +39,7 @@ public static void Initialize(this ISymUnmanagedReader3 reader, Stream stream, o
/// <summary>
/// Get the blob of binary custom debug info for a given method.
/// </summary>
public static byte[] GetCustomDebugInfo(this ISymUnmanagedReader3 reader, int methodToken, int methodVersion)
public static byte[]? GetCustomDebugInfo(this ISymUnmanagedReader3 reader, int methodToken, int methodVersion)
{
if (reader == null)
{
Expand Down Expand Up @@ -113,7 +113,7 @@ public static ISymUnmanagedMethod[] GetMethodsInDocument(this ISymUnmanagedReade
(ISymUnmanagedReader2 a, ISymUnmanagedDocument b, int c, out int d, ISymUnmanagedMethod[] e) => a.GetMethodsInDocument(b, c, out d, e)));
}

public static ISymUnmanagedMethod GetMethod(this ISymUnmanagedReader reader, int methodToken)
public static ISymUnmanagedMethod? GetMethod(this ISymUnmanagedReader reader, int methodToken)
{
if (reader == null)
{
Expand All @@ -137,7 +137,7 @@ public static ISymUnmanagedMethod GetMethod(this ISymUnmanagedReader reader, int
return method;
}

public static ISymUnmanagedMethod GetMethodByVersion(this ISymUnmanagedReader reader, int methodToken, int methodVersion)
public static ISymUnmanagedMethod? GetMethodByVersion(this ISymUnmanagedReader reader, int methodToken, int methodVersion)
{
if (reader == null)
{
Expand Down Expand Up @@ -176,7 +176,7 @@ public static int GetMethodVersion(this ISymUnmanagedReader reader, ISymUnmanage
/// <summary>
/// Returns compiler version number and name.
/// </summary>
public static bool TryGetCompilerInfo(this ISymUnmanagedCompilerInfoReader reader, out Version version, out string name)
public static bool TryGetCompilerInfo(this ISymUnmanagedCompilerInfoReader reader, out Version? version, out string? name)
{
if (reader == null)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ public static string GetName(this ISymUnmanagedVariable local)
}

return BufferToString(GetItems(local,
(ISymUnmanagedVariable a, int b, out int c, char[] d) => a.GetName(b, out c, d)));
(ISymUnmanagedVariable a, int b, out int c, char[] d) => a.GetName(b, out c, d))!);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ internal unsafe sealed partial class SymReaderMetadataAdapter : MetadataAdapterB
public SymReaderMetadataAdapter(ISymReaderMetadataProvider metadataProvider)
{
Debug.Assert(metadataProvider != null);
_metadataProvider = metadataProvider;
_metadataProvider = metadataProvider!;
}

public override int GetSigFromToken(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ internal unsafe sealed partial class SymWriterMetadataAdapter : MetadataAdapterB
public SymWriterMetadataAdapter(ISymWriterMetadataProvider metadataProvider)
{
Debug.Assert(metadataProvider != null);
_metadataProvider = metadataProvider;
_metadataProvider = metadataProvider!;
}

public override int GetTokenFromSig(byte* voidPointerSig, int byteCountSig)
Expand Down
1 change: 1 addition & 0 deletions src/Microsoft.DiaSymReader/Microsoft.DiaSymReader.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
<PropertyGroup>
<TargetFrameworks>$(NetCurrent);netstandard2.0</TargetFrameworks>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<Nullable>enable</Nullable>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<IsPackable>true</IsPackable>
<Description>Microsoft DiaSymReader interop interfaces and utilities.</Description>
Expand Down
6 changes: 3 additions & 3 deletions src/Microsoft.DiaSymReader/Reader/ISymUnmanagedReader.cs
Original file line number Diff line number Diff line change
Expand Up @@ -79,15 +79,15 @@ int GetNamespaces(
[PreserveSig]
int Initialize(
[MarshalAs(UnmanagedType.Interface)] object metadataImporter,
[MarshalAs(UnmanagedType.LPWStr)] string fileName,
[MarshalAs(UnmanagedType.LPWStr)] string searchPath,
[MarshalAs(UnmanagedType.LPWStr)] string? fileName,
[MarshalAs(UnmanagedType.LPWStr)] string? searchPath,
#if NET9_0_OR_GREATER
[MarshalUsing(typeof(ComStreamWrapper.Marshaller))]
#endif
System.Runtime.InteropServices.ComTypes.IStream stream);

[PreserveSig]
int UpdateSymbolStore([MarshalAs(UnmanagedType.LPWStr)] string fileName,
int UpdateSymbolStore([MarshalAs(UnmanagedType.LPWStr)] string? fileName,
#if NET9_0_OR_GREATER
[MarshalUsing(typeof(ComStreamWrapper.Marshaller))]
#endif
Expand Down
6 changes: 3 additions & 3 deletions src/Microsoft.DiaSymReader/Reader/ISymUnmanagedReader2.cs
Original file line number Diff line number Diff line change
Expand Up @@ -85,12 +85,12 @@ public partial interface ISymUnmanagedReader2 : ISymUnmanagedReader
[PreserveSig]
new int Initialize(
[MarshalAs(UnmanagedType.Interface)] object metadataImporter,
[MarshalAs(UnmanagedType.LPWStr)] string fileName,
[MarshalAs(UnmanagedType.LPWStr)] string searchPath,
[MarshalAs(UnmanagedType.LPWStr)] string? fileName,
[MarshalAs(UnmanagedType.LPWStr)] string? searchPath,
IStream stream);

[PreserveSig]
new int UpdateSymbolStore([MarshalAs(UnmanagedType.LPWStr)] string fileName, IStream stream);
new int UpdateSymbolStore([MarshalAs(UnmanagedType.LPWStr)] string? fileName, IStream stream);

[PreserveSig]
new int ReplaceSymbolStore([MarshalAs(UnmanagedType.LPWStr)] string fileName, IStream stream);
Expand Down
6 changes: 3 additions & 3 deletions src/Microsoft.DiaSymReader/Reader/ISymUnmanagedReader3.cs
Original file line number Diff line number Diff line change
Expand Up @@ -85,12 +85,12 @@ public partial interface ISymUnmanagedReader3 : ISymUnmanagedReader2
[PreserveSig]
new int Initialize(
[MarshalAs(UnmanagedType.Interface)] object metadataImporter,
[MarshalAs(UnmanagedType.LPWStr)] string fileName,
[MarshalAs(UnmanagedType.LPWStr)] string searchPath,
[MarshalAs(UnmanagedType.LPWStr)] string? fileName,
[MarshalAs(UnmanagedType.LPWStr)] string? searchPath,
IStream stream);

[PreserveSig]
new int UpdateSymbolStore([MarshalAs(UnmanagedType.LPWStr)] string fileName, IStream stream);
new int UpdateSymbolStore([MarshalAs(UnmanagedType.LPWStr)] string? fileName, IStream stream);

[PreserveSig]
new int ReplaceSymbolStore([MarshalAs(UnmanagedType.LPWStr)] string fileName, IStream stream);
Expand Down
6 changes: 3 additions & 3 deletions src/Microsoft.DiaSymReader/Reader/ISymUnmanagedReader4.cs
Original file line number Diff line number Diff line change
Expand Up @@ -85,12 +85,12 @@ public partial interface ISymUnmanagedReader4 : ISymUnmanagedReader3
[PreserveSig]
new int Initialize(
[MarshalAs(UnmanagedType.Interface)] object metadataImporter,
[MarshalAs(UnmanagedType.LPWStr)] string fileName,
[MarshalAs(UnmanagedType.LPWStr)] string searchPath,
[MarshalAs(UnmanagedType.LPWStr)] string? fileName,
[MarshalAs(UnmanagedType.LPWStr)] string? searchPath,
IStream stream);

[PreserveSig]
new int UpdateSymbolStore([MarshalAs(UnmanagedType.LPWStr)] string fileName, IStream stream);
new int UpdateSymbolStore([MarshalAs(UnmanagedType.LPWStr)] string? fileName, IStream stream);

[PreserveSig]
new int ReplaceSymbolStore([MarshalAs(UnmanagedType.LPWStr)] string fileName, IStream stream);
Expand Down
6 changes: 3 additions & 3 deletions src/Microsoft.DiaSymReader/Reader/ISymUnmanagedReader5.cs
Original file line number Diff line number Diff line change
Expand Up @@ -85,12 +85,12 @@ public unsafe partial interface ISymUnmanagedReader5 : ISymUnmanagedReader4
[PreserveSig]
new int Initialize(
[MarshalAs(UnmanagedType.Interface)] object metadataImporter,
[MarshalAs(UnmanagedType.LPWStr)] string fileName,
[MarshalAs(UnmanagedType.LPWStr)] string searchPath,
[MarshalAs(UnmanagedType.LPWStr)] string? fileName,
[MarshalAs(UnmanagedType.LPWStr)] string? searchPath,
IStream stream);

[PreserveSig]
new int UpdateSymbolStore([MarshalAs(UnmanagedType.LPWStr)] string fileName, IStream stream);
new int UpdateSymbolStore([MarshalAs(UnmanagedType.LPWStr)] string? fileName, IStream stream);

[PreserveSig]
new int ReplaceSymbolStore([MarshalAs(UnmanagedType.LPWStr)] string fileName, IStream stream);
Expand Down
2 changes: 1 addition & 1 deletion src/Microsoft.DiaSymReader/Reader/ISymUnmanagedReader6.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,6 @@ int GetCompilerInfo(
out ushort revision,
int bufferLength,
out int count,
[In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 0)] char[] name);
[In, Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 0)] char[]? name);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public static TSymUnmanagedReader CreateReaderWithMetadataImport<TSymUnmanagedRe
throw new ArgumentNullException(nameof(metadataImport));
}

object symReader = SymUnmanagedFactory.CreateObject(
object? symReader = SymUnmanagedFactory.CreateObject(
createReader: true,
useAlternativeLoadPath: (options & SymUnmanagedReaderCreationOptions.UseAlternativeLoadPath) != 0,
useComRegistry: (options & SymUnmanagedReaderCreationOptions.UseComRegistry) != 0,
Expand All @@ -65,7 +65,7 @@ public static TSymUnmanagedReader CreateReaderWithMetadataImport<TSymUnmanagedRe
throw loadException;
}

throw new DllNotFoundException(loadException.Message, loadException);
throw new DllNotFoundException(loadException!.Message, loadException);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

! is unfortunate here since we already asserted Debug.Assert(loadException != null); above.
Can we configure the project not to report nullable warnings for netstadnard2.0?

}

if (!(symReader is TSymUnmanagedReader symReader3))
Expand Down
18 changes: 9 additions & 9 deletions src/Microsoft.DiaSymReader/SymUnmanagedFactory.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Licensed to the .NET Foundation under one or more agreements.
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.

Expand Down Expand Up @@ -46,7 +46,7 @@ internal static partial class SymUnmanagedFactory
#if NET
private const string IUnknownIid = "00000000-0000-0000-C000-000000000046";
#else
private static Type s_lazySymReaderComType, s_lazySymWriterComType;
private static Type? s_lazySymReaderComType, s_lazySymWriterComType;
#endif

internal static string DiaSymReaderModuleName
Expand Down Expand Up @@ -112,7 +112,7 @@ internal static string DiaSymReaderModuleName
#endif

// internal for testing
internal static string GetEnvironmentVariable(string name)
internal static string? GetEnvironmentVariable(string name)
{
try
{
Expand All @@ -124,7 +124,7 @@ internal static string GetEnvironmentVariable(string name)
}
}

private static unsafe object TryLoadFromAlternativePath(Guid clsid, bool createReader)
private static unsafe object? TryLoadFromAlternativePath(Guid clsid, bool createReader)
{
var dir = GetEnvironmentVariable(AlternativeLoadPathEnvironmentVariableName);
if (string.IsNullOrEmpty(dir))
Expand All @@ -138,7 +138,7 @@ private static unsafe object TryLoadFromAlternativePath(Guid clsid, bool createR
Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWin32Error());
}

object instance = null;
object? instance = null;
try
{
string factoryName = createReader ? CreateSymReaderFactoryName : CreateSymWriterFactoryName;
Expand Down Expand Up @@ -179,7 +179,7 @@ private static unsafe object ActivateClass(Guid clsid)
return instance;
}
#else
private static object ActivateClass(ref Type lazyType, Guid clsid)
private static object ActivateClass(ref Type? lazyType, Guid clsid)
{
if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
Expand All @@ -190,17 +190,17 @@ private static object ActivateClass(ref Type lazyType, Guid clsid)
}
#endif

internal static unsafe object CreateObject(bool createReader, bool useAlternativeLoadPath, bool useComRegistry, out string moduleName, out Exception loadException)
internal static unsafe object? CreateObject(bool createReader, bool useAlternativeLoadPath, bool useComRegistry, out string? moduleName, out Exception? loadException)
{
object instance = null;
object? instance = null;
loadException = null;
moduleName = null;

var clsid = new Guid(createReader ? SymReaderClsid : SymWriterClsid);

try
{
DllNotFoundException loadExceptionCandidate = null;
DllNotFoundException? loadExceptionCandidate = null;

try
{
Expand Down
4 changes: 2 additions & 2 deletions src/Microsoft.DiaSymReader/Utilities/ComStreamWrapper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ internal unsafe sealed partial class ComStreamWrapper : IUnsafeComStream, System
internal ComStreamWrapper(Stream stream)
{
Debug.Assert(stream != null);
Debug.Assert(stream.CanSeek);
Debug.Assert(stream!.CanSeek);

_stream = stream;
}
Expand Down Expand Up @@ -211,7 +211,7 @@ public static IntPtr ConvertToUnmanaged(System.Runtime.InteropServices.ComTypes.

public static System.Runtime.InteropServices.ComTypes.IStream ConvertToManaged(IntPtr native)
{
IUnsafeComStream marshalledStream = ComInterfaceMarshaller<IUnsafeComStream>.ConvertToManaged((void*)native);
IUnsafeComStream? marshalledStream = ComInterfaceMarshaller<IUnsafeComStream>.ConvertToManaged((void*)native);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

var instead

if (marshalledStream is null)
{
throw new NotSupportedException("IStream cannot be marshalled to managed");
Expand Down
4 changes: 2 additions & 2 deletions src/Microsoft.DiaSymReader/Utilities/IUnsafeComStream.cs
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ internal unsafe partial interface IUnsafeComStream
[NativeMarshalling(typeof(STATSTGMarshaller))]
public struct STATSTG
{
public string pwcsName;
public string? pwcsName;
public int type;
public long cbSize;
public FILETIME mtime;
Expand Down Expand Up @@ -79,7 +79,7 @@ public struct Native

public static STATSTG ConvertToManaged(Native n)
{
string name = null;
string? name = null;
if (n.pwcsName != null)
{
name = Utf16StringMarshaller.ConvertToManaged(n.pwcsName);
Expand Down
Loading