1+ #define NOMINMAX
12#include " loader.h"
23
34#ifdef _WIN32
@@ -37,8 +38,11 @@ namespace shared
3738 WStr (" Datadog.AutoInstrumentation.Profiler.Managed" ),
3839 };
3940
40- constexpr const WCHAR* SpecificTypeToInjectName = WStr(" System.AppDomain" );
41- constexpr const WCHAR* SpecificMethodToInjectName = WStr(" IsCompatibilitySwitchSet" );
41+ const WCHAR* SpecificTypeToInjectName = WStr(" System.AppDomain" );
42+ const size_t SpecificTypeToInjectNameSize = WStrLen(SpecificTypeToInjectName);
43+
44+ const WCHAR* SpecificMethodToInjectName = WStr(" IsCompatibilitySwitchSet" );
45+ const size_t SpecificMethodToInjectNameSize = WStrLen(SpecificMethodToInjectName);
4246
4347
4448 static Enumerator<mdMethodDef> EnumMethodsWithName (
@@ -644,7 +648,7 @@ namespace shared
644648 const ComPtr<IMetaDataImport2> metadataImport = metadataInterfaces.As <IMetaDataImport2>(IID_IMetaDataImport);
645649 const ComPtr<IMetaDataAssemblyImport> assemblyImport = metadataInterfaces.As <IMetaDataAssemblyImport>(IID_IMetaDataAssemblyImport);
646650
647- constexpr DWORD NameBuffSize = 1024 ;
651+ const size_t NameBuffSize = 1024 ;
648652
649653 mdToken functionParentToken;
650654 WCHAR functionName[NameBuffSize]{};
@@ -667,8 +671,8 @@ namespace shared
667671 return S_FALSE;
668672 }
669673
670- bool disableNGenForFunction = (0 == memcmp (functionName, SpecificMethodToInjectName, sizeof (WCHAR) * ( std::min)( NameBuffSize, functionNameLength)))
671- && (0 == memcmp (typeName, SpecificTypeToInjectName, sizeof (WCHAR) * ( std::min)( NameBuffSize, typeNameLength)));
674+ bool disableNGenForFunction = (0 == memcmp (functionName, SpecificMethodToInjectName, sizeof (WCHAR) * std::min ( { SpecificMethodToInjectNameSize, NameBuffSize, ( size_t ) functionNameLength } )))
675+ && (0 == memcmp (typeName, SpecificTypeToInjectName, sizeof (WCHAR) * std::min ( { SpecificTypeToInjectNameSize, NameBuffSize, ( size_t ) typeNameLength } )));
672676
673677 if (disableNGenForFunction)
674678 {
0 commit comments