Exemplo n.º 1
0
        public StackInfo ConstrainedCallvirt <TypeList, ArgList> (APC pc, Method method, TypeNode constraint, TypeList extraVarargs, Dummy dest, ArgList args, StackInfo data)
            where TypeList : IIndexable <TypeNode>
            where ArgList : IIndexable <Dummy>
        {
            int paramsCount = MetaDataProvider.Parameters(method).Count + (extraVarargs == null ? 0 : extraVarargs.Count);

            if (!MetaDataProvider.IsStatic(method))
            {
                if (data.IsThis(paramsCount))
                {
                    this.stack_depth_mirror_for_end_old.AddCallOnThis(pc);
                }
                ++paramsCount;
            }

            data = data.Pop(paramsCount);
            if (MetaDataProvider.IsVoid(MetaDataProvider.ReturnType(method)))
            {
                return(data);
            }

            return(data.Push());
        }