X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fw32file.c;h=325767f52434e9fbcb91aa60963c18d518354651;hb=bf3ac1d7fc45eb32c799e6fb185695c3ee2baef5;hp=296a84d6a47055af2eddaecfb48ce827f1b93eb0;hpb=7845ed2d9122365d40eaf9a27eb695bd9915a124;p=mono.git diff --git a/mono/metadata/w32file.c b/mono/metadata/w32file.c index 296a84d6a47..325767f5243 100644 --- a/mono/metadata/w32file.c +++ b/mono/metadata/w32file.c @@ -1065,24 +1065,22 @@ MonoBoolean ves_icall_System_IO_MonoIO_DuplicateHandle (HANDLE source_process_handle, HANDLE source_handle, HANDLE target_process_handle, HANDLE *target_handle, gint32 access, gint32 inherit, gint32 options, gint32 *error) { - /* This is only used on Windows */ +#ifndef HOST_WIN32 + *target_handle = mono_w32handle_duplicate (source_handle); +#else gboolean ret; - -#ifdef HOST_WIN32 + MONO_ENTER_GC_SAFE; ret=DuplicateHandle (source_process_handle, source_handle, target_process_handle, target_handle, access, inherit, options); MONO_EXIT_GC_SAFE; -#else - *target_handle = mono_w32handle_duplicate (source_handle); - ret = TRUE; -#endif - if(ret==FALSE) { + if (!ret) { *error = mono_w32error_get_last (); /* FIXME: throw an exception? */ return(FALSE); } - +#endif + return(TRUE); }