Imported Upstream version 5.2.0.175

Former-commit-id: bb0468d0f257ff100aa895eb5fe583fb5dfbf900
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2017-06-07 13:16:24 +00:00
parent 4bdbaf4a88
commit 966bba02bb
8776 changed files with 346420 additions and 149650 deletions

View File

@@ -8,8 +8,6 @@
// Licensed under the MIT/X11 license.
//
#if !PCL && !NET_CORE
using System;
using System.Collections.Generic;
using System.IO;
@@ -35,7 +33,9 @@ namespace Mono.Cecil {
}
}
#if !NET_CORE
[Serializable]
#endif
public sealed class AssemblyResolutionException : FileNotFoundException {
readonly AssemblyNameReference reference;
@@ -50,14 +50,17 @@ namespace Mono.Cecil {
this.reference = reference;
}
#if !NET_CORE
AssemblyResolutionException (
System.Runtime.Serialization.SerializationInfo info,
System.Runtime.Serialization.StreamingContext context)
: base (info, context)
{
}
#endif
}
#if !NET_CORE
public abstract class BaseAssemblyResolver : IAssemblyResolver {
static readonly bool on_mono = Type.GetType ("Mono.Runtime") != null;
@@ -83,19 +86,6 @@ namespace Mono.Cecil {
return directories;
}
public virtual AssemblyDefinition Resolve (string fullName)
{
return Resolve (fullName, new ReaderParameters ());
}
public virtual AssemblyDefinition Resolve (string fullName, ReaderParameters parameters)
{
if (fullName == null)
throw new ArgumentNullException ("fullName");
return Resolve (AssemblyNameReference.Parse (fullName), parameters);
}
public event AssemblyResolveEventHandler ResolveFailure;
protected BaseAssemblyResolver ()
@@ -118,10 +108,8 @@ namespace Mono.Cecil {
public virtual AssemblyDefinition Resolve (AssemblyNameReference name, ReaderParameters parameters)
{
if (name == null)
throw new ArgumentNullException ("name");
if (parameters == null)
parameters = new ReaderParameters ();
Mixin.CheckName (name);
Mixin.CheckParameters (parameters);
var assembly = SearchDirectory (name, directories, parameters);
if (assembly != null)
@@ -171,8 +159,13 @@ namespace Mono.Cecil {
foreach (var directory in directories) {
foreach (var extension in extensions) {
string file = Path.Combine (directory, name.Name + extension);
if (File.Exists (file))
if (!File.Exists (file))
continue;
try {
return GetAssembly (file, parameters);
} catch (System.BadImageFormatException) {
continue;
}
}
}
@@ -351,6 +344,5 @@ namespace Mono.Cecil {
{
}
}
}
#endif
}