[io-layer] Remove DuplicateHandle
authorLudovic Henry <ludovic@xamarin.com>
Tue, 29 Nov 2016 16:51:00 +0000 (11:51 -0500)
committerLudovic Henry <ludovic@xamarin.com>
Thu, 1 Dec 2016 15:52:05 +0000 (10:52 -0500)
mono/io-layer/wapi-remap.h
mono/io-layer/wapi.c
mono/io-layer/wapi.h
mono/metadata/file-io.c

index c106ee767c1b00784944eb15a8b603d25fa71d97..e14881a2988eff440e43d703d10b697197ca38d7 100644 (file)
@@ -16,7 +16,6 @@
 #define SetLastError wapi_SetLastError
 #define TransmitFile wapi_TransmitFile
 #define CloseHandle wapi_CloseHandle 
-#define DuplicateHandle wapi_DuplicateHandle 
 #define CreateFile wapi_CreateFile
 #define DeleteFile wapi_DeleteFile
 #define GetStdHandle wapi_GetStdHandle
index f162b0bb45cad926593816f8e28366fcfd034dd7..fc9c00ccd909b7462b40556820b8848a2e666e5b 100644 (file)
@@ -46,16 +46,6 @@ wapi_getpid (void)
        return _wapi_pid;
 }
 
-/* Lots more to implement here, but this is all we need at the moment */
-gboolean
-DuplicateHandle (gpointer srcprocess, gpointer src, gpointer targetprocess, gpointer *target,
-       guint32 access G_GNUC_UNUSED, gboolean inherit G_GNUC_UNUSED, guint32 options G_GNUC_UNUSED)
-{
-       mono_w32handle_ref (src);
-       *target = src;
-       return TRUE;
-}
-
 /**
  * CloseHandle:
  * @handle: The handle to release
index 1ae5cc835438cddaa63d0b0cd7e28540087bfa15..8a7ef1f77daa6a2600f919220a45bc2b0c268cb2 100644 (file)
@@ -44,10 +44,6 @@ wapi_cleanup (void);
 gboolean
 CloseHandle (gpointer handle);
 
-gboolean
-DuplicateHandle (gpointer srcprocess, gpointer src, gpointer targetprocess, gpointer *target,
-       guint32 access G_GNUC_UNUSED, gboolean inherit G_GNUC_UNUSED, guint32 options G_GNUC_UNUSED);
-
 pid_t
 wapi_getpid (void);
 
index 0b001db668921cde759f8d3dbc434bc30aedf43f..17db2725b1d13c6171cf299b12b4bdb7f8ce9687 100644 (file)
@@ -1158,7 +1158,13 @@ ves_icall_System_IO_MonoIO_DuplicateHandle (HANDLE source_process_handle, HANDLE
        gboolean ret;
        
        MONO_ENTER_GC_SAFE;
+#ifdef HOST_WIN32
        ret=DuplicateHandle (source_process_handle, source_handle, target_process_handle, target_handle, access, inherit, options);
+#else
+       mono_w32handle_ref (source_handle);
+       *target_handle = source_handle;
+       ret = TRUE;
+#endif
        MONO_EXIT_GC_SAFE;
 
        if(ret==FALSE) {