You've already forked linux-packaging-mono
Imported Upstream version 6.12.0.101
Former-commit-id: 86e5d3c0859336c41f589d3bcf96fcc6ecd603cd
This commit is contained in:
parent
77df3da300
commit
d7ffa4a239
21
external/ikvm/reflect/Metadata/Tables.cs
vendored
21
external/ikvm/reflect/Metadata/Tables.cs
vendored
@@ -450,20 +450,28 @@ namespace IKVM.Reflection.Metadata
|
||||
{
|
||||
return new Enumerator(records, table.RowCount - 1, -1, token);
|
||||
}
|
||||
int index = BinarySearch(records, table.RowCount, token & 0xFFFFFF);
|
||||
var maskedToken = token & 0xFFFFFF;
|
||||
int index = BinarySearch(records, table.RowCount, maskedToken);
|
||||
|
||||
if (index < 0)
|
||||
{
|
||||
return new Enumerator(null, 0, 1, -1);
|
||||
}
|
||||
int start = index;
|
||||
while (start > 0 && (records[start - 1].FilterKey & 0xFFFFFF) == (token & 0xFFFFFF))
|
||||
while (start > 0)
|
||||
{
|
||||
var maskedFilterKey = records [start - 1].FilterKey & 0xFFFFFF;
|
||||
if (maskedFilterKey != maskedToken && maskedFilterKey != 0)
|
||||
break;
|
||||
start--;
|
||||
}
|
||||
int end = index;
|
||||
int max = table.RowCount - 1;
|
||||
while (end < max && (records[end + 1].FilterKey & 0xFFFFFF) == (token & 0xFFFFFF))
|
||||
while (end < max)
|
||||
{
|
||||
var maskedFilterKey = records [end + 1].FilterKey & 0xFFFFFF;
|
||||
if (maskedFilterKey != maskedToken && maskedFilterKey != 0)
|
||||
break;
|
||||
end++;
|
||||
}
|
||||
return new Enumerator(records, end, start - 1, token);
|
||||
@@ -481,6 +489,13 @@ namespace IKVM.Reflection.Metadata
|
||||
{
|
||||
return mid;
|
||||
}
|
||||
else if (maskedValue == 0)
|
||||
{
|
||||
if (min > 0)
|
||||
min--;
|
||||
if (max < length - 1)
|
||||
max++;
|
||||
}
|
||||
else if (maskedToken < maskedValue)
|
||||
{
|
||||
max = mid - 1;
|
||||
|
6
external/ikvm/reflect/MethodSignature.cs
vendored
6
external/ikvm/reflect/MethodSignature.cs
vendored
@@ -146,7 +146,7 @@ namespace IKVM.Reflection
|
||||
System.Runtime.InteropServices.CallingConvention unmanagedCallingConvention = 0;
|
||||
bool unmanaged;
|
||||
byte flags = br.ReadByte();
|
||||
switch (flags & 7)
|
||||
switch (flags & 0xf)
|
||||
{
|
||||
case DEFAULT:
|
||||
callingConvention = CallingConventions.Standard;
|
||||
@@ -168,6 +168,10 @@ namespace IKVM.Reflection
|
||||
unmanagedCallingConvention = System.Runtime.InteropServices.CallingConvention.FastCall;
|
||||
unmanaged = true;
|
||||
break;
|
||||
case 0x09: // UNMANAGED
|
||||
unmanagedCallingConvention = (System.Runtime.InteropServices.CallingConvention)0x9;
|
||||
unmanaged = true;
|
||||
break;
|
||||
case VARARG:
|
||||
callingConvention = CallingConventions.VarArgs;
|
||||
unmanaged = false;
|
||||
|
1
external/ikvm/reflect/Type.cs
vendored
1
external/ikvm/reflect/Type.cs
vendored
@@ -1042,6 +1042,7 @@ namespace IKVM.Reflection
|
||||
public ConstructorInfo GetConstructor(BindingFlags bindingAttr, Binder binder, Type[] types, ParameterModifier[] modifiers)
|
||||
{
|
||||
ConstructorInfo ci1 = null;
|
||||
bindingAttr |= BindingFlags.DeclaredOnly;
|
||||
if ((bindingAttr & BindingFlags.Instance) != 0)
|
||||
{
|
||||
ci1 = GetConstructorImpl(ConstructorInfo.ConstructorName, bindingAttr, binder, types, modifiers);
|
||||
|
Reference in New Issue
Block a user