public PEAPI.Method ResolveMethod(string signature) { MethodDef methoddef = (MethodDef)global_method_table[signature]; if (methoddef == null) { Report.Error("Unable to resolve global method : " + signature); } return(methoddef.Resolve(this)); }
public PEAPI.Method ResolveMethod(BaseTypeRef ret_type, PEAPI.CallConv call_conv, string name, BaseTypeRef [] param, int gen_param_count, CodeGen code_gen) { string signature = MethodDef.CreateSignature(ret_type, call_conv, name, param, gen_param_count, false); MethodDef methoddef = (MethodDef)method_table[signature]; if (methoddef != null) { return(methoddef.Resolve(code_gen, classdef)); } return(ResolveAsMethodRef(ret_type, call_conv, name, param, gen_param_count, code_gen)); }
public PEAPI.Method ResolveVarargMethod(string sig_only_required_params, string sig_with_optional_params, CodeGen code_gen, PEAPI.Type[] opt) { MethodDef methoddef = (MethodDef)global_method_table [sig_only_required_params]; if (methoddef == null) { Report.Error("Unable to resolve global method : " + sig_only_required_params); } methoddef.Resolve(code_gen); return(methoddef.GetVarargSig(opt, sig_with_optional_params)); }
public PEAPI.Method ResolveVarargMethod(BaseTypeRef ret_type, PEAPI.CallConv call_conv, string name, BaseTypeRef [] param, int gen_param_count, PEAPI.Type [] opt, CodeGen code_gen) { // Only MethodDef sig required to lookup in the method_table string signature = MethodDef.CreateSignature(ret_type, call_conv, name, param, 0, false); MethodDef methoddef = (MethodDef)method_table[signature]; if (methoddef != null) { methoddef.Resolve(code_gen, classdef); return(methoddef.GetVarargSig( opt, MethodDef.CreateSignature(ret_type, call_conv, name, param, 0, true))); } return(ResolveAsMethodRef(ret_type, call_conv, name, param, gen_param_count, code_gen)); }