You've already forked linux-packaging-mono
Imported Upstream version 5.0.0.42
Former-commit-id: fd56571888259555122d8a0f58c68838229cea2b
This commit is contained in:
parent
1190d13a04
commit
6bdd276d05
45
external/linker/cecil/Mono/Disposable.cs
vendored
Normal file
45
external/linker/cecil/Mono/Disposable.cs
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
//
|
||||
// Author:
|
||||
// Jb Evain (jbevain@gmail.com)
|
||||
//
|
||||
// Copyright (c) 2008 - 2015 Jb Evain
|
||||
// Copyright (c) 2008 - 2011 Novell, Inc.
|
||||
//
|
||||
// Licensed under the MIT/X11 license.
|
||||
//
|
||||
|
||||
using System;
|
||||
|
||||
namespace Mono {
|
||||
|
||||
static class Disposable {
|
||||
|
||||
public static Disposable<T> Owned<T> (T value) where T : class, IDisposable
|
||||
{
|
||||
return new Disposable<T> (value, owned: true);
|
||||
}
|
||||
|
||||
public static Disposable<T> NotOwned<T> (T value) where T : class, IDisposable
|
||||
{
|
||||
return new Disposable<T> (value, owned: false);
|
||||
}
|
||||
}
|
||||
|
||||
struct Disposable<T> : IDisposable where T : class, IDisposable {
|
||||
|
||||
internal readonly T value;
|
||||
readonly bool owned;
|
||||
|
||||
public Disposable (T value, bool owned)
|
||||
{
|
||||
this.value = value;
|
||||
this.owned = owned;
|
||||
}
|
||||
|
||||
public void Dispose ()
|
||||
{
|
||||
if (value != null && owned)
|
||||
value.Dispose ();
|
||||
}
|
||||
}
|
||||
}
|
||||
54
external/linker/cecil/Mono/Empty.cs
vendored
Normal file
54
external/linker/cecil/Mono/Empty.cs
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
//
|
||||
// Author:
|
||||
// Jb Evain (jbevain@gmail.com)
|
||||
//
|
||||
// Copyright (c) 2008 - 2015 Jb Evain
|
||||
// Copyright (c) 2008 - 2011 Novell, Inc.
|
||||
//
|
||||
// Licensed under the MIT/X11 license.
|
||||
//
|
||||
|
||||
using System;
|
||||
using Mono.Collections.Generic;
|
||||
|
||||
namespace Mono {
|
||||
|
||||
static class Empty<T> {
|
||||
|
||||
public static readonly T [] Array = new T [0];
|
||||
}
|
||||
}
|
||||
|
||||
namespace Mono.Cecil {
|
||||
|
||||
static partial class Mixin {
|
||||
|
||||
public static bool IsNullOrEmpty<T> (this T [] self)
|
||||
{
|
||||
return self == null || self.Length == 0;
|
||||
}
|
||||
|
||||
public static bool IsNullOrEmpty<T> (this Collection<T> self)
|
||||
{
|
||||
return self == null || self.size == 0;
|
||||
}
|
||||
|
||||
public static T [] Resize<T> (this T [] self, int length)
|
||||
{
|
||||
Array.Resize (ref self, length);
|
||||
return self;
|
||||
}
|
||||
|
||||
public static T [] Add<T> (this T [] self, T item)
|
||||
{
|
||||
if (self == null) {
|
||||
self = new [] { item };
|
||||
return self;
|
||||
}
|
||||
|
||||
self = self.Resize (self.Length + 1);
|
||||
self [self.Length - 1] = item;
|
||||
return self;
|
||||
}
|
||||
}
|
||||
}
|
||||
91
external/linker/cecil/Mono/Type.cs
vendored
Normal file
91
external/linker/cecil/Mono/Type.cs
vendored
Normal file
@@ -0,0 +1,91 @@
|
||||
//
|
||||
// Author:
|
||||
// Jb Evain (jbevain@gmail.com)
|
||||
//
|
||||
// Copyright (c) 2008 - 2015 Jb Evain
|
||||
// Copyright (c) 2008 - 2011 Novell, Inc.
|
||||
//
|
||||
// Licensed under the MIT/X11 license.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
#if NET_CORE
|
||||
using System.Collections.Generic;
|
||||
#endif
|
||||
|
||||
namespace Mono {
|
||||
|
||||
#if NET_CORE
|
||||
enum TypeCode {
|
||||
Empty = 0,
|
||||
Object = 1,
|
||||
DBNull = 2,
|
||||
Boolean = 3,
|
||||
Char = 4,
|
||||
SByte = 5,
|
||||
Byte = 6,
|
||||
Int16 = 7,
|
||||
UInt16 = 8,
|
||||
Int32 = 9,
|
||||
UInt32 = 10,
|
||||
Int64 = 11,
|
||||
UInt64 = 12,
|
||||
Single = 13,
|
||||
Double = 14,
|
||||
Decimal = 15,
|
||||
DateTime = 16,
|
||||
String = 18
|
||||
}
|
||||
#endif
|
||||
|
||||
static class TypeExtensions {
|
||||
|
||||
#if NET_CORE
|
||||
private static readonly Dictionary<Type, TypeCode> TypeCodeMap = new Dictionary<Type, TypeCode>
|
||||
{
|
||||
{ typeof (bool), TypeCode.Boolean },
|
||||
{ typeof (char), TypeCode.Char },
|
||||
{ typeof (sbyte), TypeCode.SByte },
|
||||
{ typeof (byte), TypeCode.Byte },
|
||||
{ typeof (short), TypeCode.Int16 },
|
||||
{ typeof (ushort), TypeCode.UInt16 },
|
||||
{ typeof (int), TypeCode.Int32 },
|
||||
{ typeof (uint), TypeCode.UInt32 },
|
||||
{ typeof (long), TypeCode.Int64 },
|
||||
{ typeof (ulong), TypeCode.UInt64 },
|
||||
{ typeof (float), TypeCode.Single },
|
||||
{ typeof (double), TypeCode.Double },
|
||||
{ typeof (decimal), TypeCode.Decimal },
|
||||
{ typeof (DateTime), TypeCode.DateTime },
|
||||
{ typeof (string), TypeCode.String },
|
||||
};
|
||||
#endif
|
||||
|
||||
public static TypeCode GetTypeCode (this Type type)
|
||||
{
|
||||
#if NET_CORE
|
||||
if (type == null)
|
||||
return TypeCode.Empty;
|
||||
|
||||
TypeCode code;
|
||||
if (!TypeCodeMap.TryGetValue (type, out code))
|
||||
return TypeCode.Object;
|
||||
|
||||
return code;
|
||||
#else
|
||||
return Type.GetTypeCode (type);
|
||||
#endif
|
||||
}
|
||||
|
||||
public static Assembly GetAssembly (this Type type)
|
||||
{
|
||||
#if NET_CORE
|
||||
return type.GetTypeInfo ().Assembly;
|
||||
#else
|
||||
return type.Assembly;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user