ExecuteMethod() private method

private ExecuteMethod ( ObjectInstance &retVal, bool &doJmpCall, MemberReference &jmpCallToken ) : void
retVal Inazuma.PetitClr.Core.Structure.ObjectInstance
doJmpCall bool
jmpCallToken Inazuma.Mono.Cecil.MemberReference
return void
        public static ObjectInstance ExecuteMethodWrapper(ClassLoader classLoader, MethodDefinition methDef, bool directCall, IList <ObjectInstance> args,
                                                          object stubContext, out bool doJmpCall)
        {
            var interp      = new PetitClrInterpreter(classLoader, methDef, directCall, args, stubContext);
            var interpFrame = new InterpreterFrame(interp);

            ObjectInstance  retVal;
            MemberReference jmpCallToken;

            interp.ExecuteMethod(out retVal, out doJmpCall, out jmpCallToken);

            if (doJmpCall)
            {
                throw ThrowHelper.NotImplementedYet;
            }

            interpFrame.Pop();
            return(retVal);
        }
示例#2
0
        public static ObjectInstance ExecuteMethodWrapper(ClassLoader classLoader, MethodDefinition methDef, bool directCall, IList<ObjectInstance> args,
            object stubContext, out bool doJmpCall)
        {
            var interp = new PetitClrInterpreter(classLoader, methDef, directCall, args, stubContext);
            var interpFrame = new InterpreterFrame(interp);

            ObjectInstance retVal;
            MemberReference jmpCallToken;
            interp.ExecuteMethod(out retVal, out doJmpCall, out jmpCallToken);

            if (doJmpCall)
            {
                throw ThrowHelper.NotImplementedYet;
            }

            interpFrame.Pop();
            return retVal;
        }