Imported Upstream version 4.2.0.179

Former-commit-id: 0a113cb3a6feb7873f632839b1307cc6033cd595
This commit is contained in:
Xamarin Public Jenkins
2015-08-26 07:17:56 -04:00
committed by Jo Shields
parent 183bba2c9a
commit 6992685b86
7507 changed files with 90259 additions and 657307 deletions

View File

@@ -68,8 +68,13 @@ namespace System.Reflection.Emit {
public UnmanagedType BaseType {
get {
if (t == UnmanagedType.LPArray || t == UnmanagedType.SafeArray)
if (t == UnmanagedType.LPArray)
throw new ArgumentException ();
#if FEATURE_COMINTEROP
if (t == UnmanagedType.SafeArray)
throw new ArgumentException ();
#endif
return tbase;
}
}
@@ -97,15 +102,15 @@ namespace System.Reflection.Emit {
public static UnmanagedMarshal DefineLPArray( UnmanagedType elemType) {
return new UnmanagedMarshal (UnmanagedType.LPArray, elemType);
}
#if FEATURE_COMINTEROP
public static UnmanagedMarshal DefineSafeArray( UnmanagedType elemType) {
return new UnmanagedMarshal (UnmanagedType.SafeArray, elemType);
}
#endif
public static UnmanagedMarshal DefineUnmanagedMarshal( UnmanagedType unmanagedType) {
return new UnmanagedMarshal (unmanagedType, unmanagedType);
}
#if FEATURE_COMINTEROP
internal static UnmanagedMarshal DefineCustom (Type typeref, string cookie, string mtype, Guid id) {
UnmanagedMarshal res = new UnmanagedMarshal (UnmanagedType.CustomMarshaler, UnmanagedType.CustomMarshaler);
res.mcookie = cookie;
@@ -117,7 +122,7 @@ namespace System.Reflection.Emit {
res.guid = id.ToString ();
return res;
}
#endif
// sizeConst and sizeParamIndex can be -1 meaning they are not specified
internal static UnmanagedMarshal DefineLPArrayInternal (UnmanagedType elemType, int sizeConst, int sizeParamIndex) {
UnmanagedMarshal res = new UnmanagedMarshal (UnmanagedType.LPArray, elemType);