public virtual bool IsMethodValid(metadata.MethodSpec ms) { if (!IsTypeValid(ms.type)) { return(false); } if (ms.HasCustomAttribute("_ZN14libsupcs#2Edll8libsupcs19Bits32OnlyAttribute_7#2Ector_Rv_P1u1t") && GetPointerSize() != 4) { return(false); } if (ms.HasCustomAttribute("_ZN14libsupcs#2Edll8libsupcs19Bits64OnlyAttribute_7#2Ector_Rv_P1u1t") && GetPointerSize() != 8) { return(false); } bool is_arch_dependent = false; bool is_required_arch = false; foreach (var idx in ms.CustomAttributes("_ZN14libsupcs#2Edll8libsupcs22ArchDependentAttribute_7#2Ector_Rv_P2u1tu1S")) { var sig_idx = ms.m.GetCustomAttrSigIdx(idx); var arch = ms.m.ReadCustomAttrString(ref sig_idx); is_arch_dependent = true; if (arch.Equals(name)) { is_required_arch = true; } } if (is_arch_dependent && !is_required_arch) { return(false); } return(true); }