diff options
author | Swaroop Sridhar <Swaroop.Sridhar@microsoft.com> | 2018-11-22 01:24:08 -0800 |
---|---|---|
committer | Jan Kotas <jkotas@microsoft.com> | 2018-11-22 01:24:08 -0800 |
commit | 5e4e286ea2bffa4a5cb2467721ed89f27959d253 (patch) | |
tree | 90c4f86955c203c1298dfaed0c832f1b7af34a6c /src/vm/dllimport.cpp | |
parent | f572782d55b65f06306dfce7aed07c84e6671756 (diff) | |
download | coreclr-5e4e286ea2bffa4a5cb2467721ed89f27959d253.tar.gz coreclr-5e4e286ea2bffa4a5cb2467721ed89f27959d253.tar.bz2 coreclr-5e4e286ea2bffa4a5cb2467721ed89f27959d253.zip |
Sequel to NativeLibrary API (#21148)
Small changes to address furhter feedback:
- Perform argument validation in the Marshall.cs instead of DllImport helpers
- Improve doc comments.
Diffstat (limited to 'src/vm/dllimport.cpp')
-rw-r--r-- | src/vm/dllimport.cpp | 38 |
1 files changed, 20 insertions, 18 deletions
diff --git a/src/vm/dllimport.cpp b/src/vm/dllimport.cpp index 18f404949a..9dda48f3ee 100644 --- a/src/vm/dllimport.cpp +++ b/src/vm/dllimport.cpp @@ -6136,10 +6136,12 @@ bool NDirect::s_fSecureLoadLibrarySupported = false; // static NATIVE_LIBRARY_HANDLE NDirect::LoadLibraryFromPath(LPCWSTR libraryPath, BOOL throwOnError) { - STANDARD_VM_CONTRACT; - - if (libraryPath == NULL) - COMPlusThrowArgumentNull(W("libraryPath"), W("ArgumentNull_String")); + CONTRACTL + { + STANDARD_VM_CHECK; + PRECONDITION(CheckPointer(libraryPath)); + } + CONTRACTL_END; LoadLibErrorTracker errorTracker; const NATIVE_LIBRARY_HANDLE hmod = @@ -6158,16 +6160,16 @@ NATIVE_LIBRARY_HANDLE NDirect::LoadLibraryByName(LPCWSTR libraryName, Assembly * BOOL hasDllImportSearchFlag, DWORD dllImportSearchFlag, BOOL throwOnError) { - STANDARD_VM_CONTRACT; + CONTRACTL + { + STANDARD_VM_CHECK; + PRECONDITION(CheckPointer(libraryName)); + PRECONDITION(CheckPointer(callingAssembly)); + } + CONTRACTL_END; LoadLibErrorTracker errorTracker; - if (libraryName == NULL) - COMPlusThrowArgumentNull(W("libraryName"), W("ArgumentNull_String")); - - if (callingAssembly == NULL) - COMPlusThrowArgumentNull(W("callingAssembly"), W("ArgumentNull_Assembly")); - // First checks if a default DllImportSearchPathFlag was passed in, if so, use that value. // Otherwise checks if the assembly has the DefaultDllImportSearchPathsAttribute attribute. If so, use that value. BOOL searchAssemblyDirectory = TRUE; @@ -6255,13 +6257,13 @@ void NDirect::FreeNativeLibrary(NATIVE_LIBRARY_HANDLE handle) //static INT_PTR NDirect::GetNativeLibraryExport(NATIVE_LIBRARY_HANDLE handle, LPCWSTR symbolName, BOOL throwOnError) { - STANDARD_VM_CONTRACT; - - if (handle == NULL) - COMPlusThrowArgumentNull(W("handle"), W("Arg_InvalidHandle")); - - if (symbolName == NULL) - COMPlusThrowArgumentNull(W("symbolName"), W("ArgumentNull_String")); + CONTRACTL + { + STANDARD_VM_CHECK; + PRECONDITION(CheckPointer(handle)); + PRECONDITION(CheckPointer(symbolName)); + } + CONTRACTL_END; MAKE_UTF8PTR_FROMWIDE(lpstr, symbolName); |