Jo Shields a575963da9 Imported Upstream version 3.6.0
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
2014-08-13 10:39:27 +01:00

77 lines
2.0 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using Debugger.MetaData;
using Debugger.Wrappers.CorSym;
using Debugger.Wrappers;
using Debugger.Expressions;
namespace ikvm.debugger.win
{
class TargetMethod
{
private readonly MethodInfo methodInfo;
internal TargetMethod(MethodInfo methodInfo){
this.methodInfo = methodInfo;
}
internal String Name
{
get { return methodInfo.FullName; }
}
internal int MethodId
{
get { return (int)methodInfo.MetadataToken; }
}
internal String JniSignature
{
get {
StringBuilder signature = new StringBuilder();
signature.Append(methodInfo.ParameterCount + "-" + methodInfo.Module.MetaData.GetGenericParamCount(methodInfo.MetadataToken));
for(int i=0; i<methodInfo.ParameterCount; i++)
{
Expression expr = methodInfo.GetExpressionForParameter(i);
signature.Append(methodInfo.GetParameterName(i) + "-" + expr + "-" + expr.Code + "-" + expr.CodeTail);
signature.Append('|');
}
return signature.ToString();
}
}
internal String GenericSignature
{
get
{
return "";//TODO
}
}
internal int AccessFlags
{
get
{
// http://java.sun.com/docs/books/jvms/first_edition/html/ClassFile.doc.html#12725
if (methodInfo.IsPublic)
{
return 0x0001;
}
if (methodInfo.IsProtected)
{
return 0x0004;
}
if (methodInfo.IsPrivate)
{
return 0x0002;
}
return 0;
}
}
}
}