[corlib] Use Directory.GetFiles/GetDirectories implementation from referencesource...
authorAlexander Köplinger <alex.koeplinger@outlook.com>
Thu, 1 Dec 2016 16:48:26 +0000 (17:48 +0100)
committerGitHub <noreply@github.com>
Thu, 1 Dec 2016 16:48:26 +0000 (17:48 +0100)
commitaff3d4198b316dd363297cee36a09591b6941540
treefd3a8cd7f6fb1c986ee49dd8686102804589dc39
parent69c3bfa45f43a8e9880e6a290b305c1061f4770a
[corlib] Use Directory.GetFiles/GetDirectories implementation from referencesource (#4042)

We already had implementations of the Windows APIs like FindFirstFile/FindNextFile
in native code but we wrapped it with some convenience functions for our implementation.

The referencesource code works directly against those APIs so I added new icall functions
that are just used for passing data to/from native code.

Note that we have the same problem in the DirectoryInfo.GetFiles() implementation.
Right now that one still uses the old Mono implementation, switching it over to
the referencesource implementation will be done in a separate commit.

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=42715
14 files changed:
mcs/class/corlib/ReferenceSources/PathInternal.cs
mcs/class/corlib/ReferenceSources/win32native.cs
mcs/class/corlib/System.IO/Directory.cs
mcs/class/corlib/System.IO/MonoIO.cs
mcs/class/corlib/System.IO/Path.cs
mcs/class/corlib/Test/System.IO/DirectoryTest.cs
mcs/class/corlib/corlib.dll.sources
mcs/class/referencesource/mscorlib/microsoft/win32/safehandles/safefindhandle.cs
mcs/class/referencesource/mscorlib/system/io/directory.cs
mcs/class/referencesource/mscorlib/system/io/filesystemenumerable.cs
mcs/class/referencesource/mscorlib/system/io/filesysteminfo.cs
mono/metadata/file-io.c
mono/metadata/file-io.h
mono/metadata/icall-def.h