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

@@ -707,13 +707,16 @@ namespace Mono.ILASM {
if (IsVararg)
signature = CreateVarargSignature (RetType, name, param_list);
else
signature = CreateSignature (RetType, name, param_list, GenParamCount);
signature = CreateSignature (RetType, name, param_list, GenParamCount, Attributes);
}
static string CreateSignature (BaseTypeRef RetType, string name, IList param_list, int gen_param_count)
static string CreateSignature (BaseTypeRef RetType, string name, IList param_list, int gen_param_count, PEAPI.MethAttr attrs)
{
StringBuilder builder = new StringBuilder ();
if ((attrs & PEAPI.MethAttr.Static) == 0)
builder.Append ("instance ");
builder.Append (RetType.FullName);
builder.Append (" ");
builder.Append (name);
@@ -777,10 +780,10 @@ namespace Mono.ILASM {
if ((call_conv & PEAPI.CallConv.Vararg) != 0)
return CreateVarargSignature (RetType, name, param_list, include_optional);
else
return CreateSignature (RetType, name, param_list, gen_param_count, include_optional);
return CreateSignature (RetType, name, param_list, gen_param_count, include_optional, call_conv);
}
static string CreateVarargSignature (BaseTypeRef RetType, string name, BaseTypeRef [] param_list, bool include_optional)
static string CreateVarargSignature (BaseTypeRef RetType, string name, BaseTypeRef [] param_list, bool include_optional)
{
StringBuilder builder = new StringBuilder ();
BaseTypeRef last = null;
@@ -815,10 +818,14 @@ namespace Mono.ILASM {
return builder.ToString ();
}
static string CreateSignature (BaseTypeRef RetType, string name, BaseTypeRef[] param_list, int gen_param_count, bool include_optional)
static string CreateSignature (BaseTypeRef RetType, string name, BaseTypeRef[] param_list, int gen_param_count, bool include_optional, PEAPI.CallConv call_conv)
{
StringBuilder builder = new StringBuilder ();
if ((call_conv & PEAPI.CallConv.Instance) != 0)
builder.Append ("instance ");
builder.Append (RetType.FullName);
builder.Append (" ");
builder.Append (name);