You've already forked linux-packaging-mono
Imported Upstream version 4.2.0.179
Former-commit-id: 4610231f55806d2a05ed69e5ff3faa7336cc1479
This commit is contained in:
committed by
Jo Shields
parent
aa7da660d6
commit
c042cd0c52
@@ -408,10 +408,14 @@ namespace System.Runtime.InteropServices
|
||||
#if !FULL_AOT_RUNTIME
|
||||
public static int GetHRForException (Exception e)
|
||||
{
|
||||
#if FEATURE_COMINTEROP
|
||||
var errorInfo = new ManagedErrorInfo(e);
|
||||
SetErrorInfo (0, errorInfo);
|
||||
|
||||
return e.hresult;
|
||||
#else
|
||||
return -1;
|
||||
#endif
|
||||
}
|
||||
|
||||
[MonoTODO]
|
||||
@@ -788,7 +792,7 @@ namespace System.Runtime.InteropServices
|
||||
return *(short*)addr;
|
||||
|
||||
short s;
|
||||
String.memcpy ((byte*)&s, (byte*)ptr, 2);
|
||||
Buffer.Memcpy ((byte*)&s, (byte*)ptr, 2);
|
||||
return s;
|
||||
}
|
||||
|
||||
@@ -800,7 +804,7 @@ namespace System.Runtime.InteropServices
|
||||
return *(short*)addr;
|
||||
|
||||
short s;
|
||||
String.memcpy ((byte*)&s, addr, 2);
|
||||
Buffer.Memcpy ((byte*)&s, addr, 2);
|
||||
return s;
|
||||
}
|
||||
|
||||
@@ -820,7 +824,7 @@ namespace System.Runtime.InteropServices
|
||||
return *(int*)addr;
|
||||
|
||||
int s;
|
||||
String.memcpy ((byte*)&s, addr, 4);
|
||||
Buffer.Memcpy ((byte*)&s, addr, 4);
|
||||
return s;
|
||||
}
|
||||
|
||||
@@ -833,7 +837,7 @@ namespace System.Runtime.InteropServices
|
||||
return *(int*)addr;
|
||||
else {
|
||||
int s;
|
||||
String.memcpy ((byte*)&s, addr, 4);
|
||||
Buffer.Memcpy ((byte*)&s, addr, 4);
|
||||
return s;
|
||||
}
|
||||
}
|
||||
@@ -857,7 +861,7 @@ namespace System.Runtime.InteropServices
|
||||
return *(long*)ptr;
|
||||
|
||||
long s;
|
||||
String.memcpy ((byte*)&s, addr, 8);
|
||||
Buffer.Memcpy ((byte*)&s, addr, 8);
|
||||
return s;
|
||||
}
|
||||
|
||||
@@ -869,7 +873,7 @@ namespace System.Runtime.InteropServices
|
||||
return *(long*)addr;
|
||||
|
||||
long s;
|
||||
String.memcpy ((byte*)&s, addr, 8);
|
||||
Buffer.Memcpy ((byte*)&s, addr, 8);
|
||||
return s;
|
||||
}
|
||||
|
||||
@@ -975,6 +979,21 @@ namespace System.Runtime.InteropServices
|
||||
return SizeOf (structure.GetType ());
|
||||
}
|
||||
|
||||
internal static uint SizeOfType (Type type)
|
||||
{
|
||||
return (uint) SizeOf (type);
|
||||
}
|
||||
|
||||
internal static uint AlignedSizeOf<T> () where T : struct
|
||||
{
|
||||
uint size = SizeOfType (typeof (T));
|
||||
if (size == 1 || size == 2)
|
||||
return size;
|
||||
if (IntPtr.Size == 8 && size == 4)
|
||||
return size;
|
||||
return (size + 3) & (~((uint)3));
|
||||
}
|
||||
|
||||
[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||||
public extern static IntPtr StringToBSTR (string s);
|
||||
|
||||
@@ -1171,7 +1190,7 @@ namespace System.Runtime.InteropServices
|
||||
if (((uint)addr & 1) == 0)
|
||||
*(short*)addr = val;
|
||||
else
|
||||
String.memcpy (addr, (byte*)&val, 2);
|
||||
Buffer.Memcpy (addr, (byte*)&val, 2);
|
||||
}
|
||||
|
||||
public static unsafe void WriteInt16 (IntPtr ptr, int ofs, short val)
|
||||
@@ -1181,7 +1200,7 @@ namespace System.Runtime.InteropServices
|
||||
if (((uint)addr & 1) == 0)
|
||||
*(short*)addr = val;
|
||||
else {
|
||||
String.memcpy (addr, (byte*)&val, 2);
|
||||
Buffer.Memcpy (addr, (byte*)&val, 2);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1215,7 +1234,7 @@ namespace System.Runtime.InteropServices
|
||||
if (((uint)addr & 3) == 0)
|
||||
*(int*)addr = val;
|
||||
else {
|
||||
String.memcpy (addr, (byte*)&val, 4);
|
||||
Buffer.Memcpy (addr, (byte*)&val, 4);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1226,7 +1245,7 @@ namespace System.Runtime.InteropServices
|
||||
if (((uint)addr & 3) == 0)
|
||||
*(int*)addr = val;
|
||||
else {
|
||||
String.memcpy (addr, (byte*)&val, 4);
|
||||
Buffer.Memcpy (addr, (byte*)&val, 4);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1246,7 +1265,7 @@ namespace System.Runtime.InteropServices
|
||||
if (((uint)addr & 7) == 0)
|
||||
*(long*)addr = val;
|
||||
else
|
||||
String.memcpy (addr, (byte*)&val, 8);
|
||||
Buffer.Memcpy (addr, (byte*)&val, 8);
|
||||
}
|
||||
|
||||
public static unsafe void WriteInt64 (IntPtr ptr, int ofs, long val)
|
||||
@@ -1258,7 +1277,7 @@ namespace System.Runtime.InteropServices
|
||||
if (((uint)addr & 7) == 0)
|
||||
*(long*)addr = val;
|
||||
else
|
||||
String.memcpy (addr, (byte*)&val, 8);
|
||||
Buffer.Memcpy (addr, (byte*)&val, 8);
|
||||
}
|
||||
|
||||
[MonoTODO]
|
||||
@@ -1503,6 +1522,7 @@ namespace System.Runtime.InteropServices
|
||||
return null;
|
||||
}
|
||||
|
||||
#if FEATURE_COMINTEROP
|
||||
[DllImport ("oleaut32.dll", CharSet=CharSet.Unicode, EntryPoint = "SetErrorInfo")]
|
||||
static extern int _SetErrorInfo (int dwReserved,
|
||||
[MarshalAs(UnmanagedType.Interface)] IErrorInfo pIErrorInfo);
|
||||
@@ -1551,7 +1571,7 @@ namespace System.Runtime.InteropServices
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
#endif
|
||||
public static Exception GetExceptionForHR (int errorCode)
|
||||
{
|
||||
return GetExceptionForHR (errorCode, IntPtr.Zero);
|
||||
@@ -1559,7 +1579,7 @@ namespace System.Runtime.InteropServices
|
||||
|
||||
public static Exception GetExceptionForHR (int errorCode, IntPtr errorInfo)
|
||||
{
|
||||
#if !MOBILE
|
||||
#if FEATURE_COMINTEROP
|
||||
IErrorInfo info = null;
|
||||
if (errorInfo != (IntPtr)(-1)) {
|
||||
if (errorInfo == IntPtr.Zero) {
|
||||
|
Reference in New Issue
Block a user