Mono.Debugger.Backend.SingleSteppingEngine.OperationRuntimeInvoke.OperationRuntimeInvokeHelper.get_method_address C# (CSharp) Method

get_method_address() private method

private get_method_address ( ) : bool
return bool
                bool get_method_address()
                {
                    method = class_info.GetMethodAddress (inferior, RTI.Function.Token);
                    if (method.IsNull)
                    return false;

                    if ((instance == null) || instance.Type.IsByRef)
                    return true;

                    TargetType decl = RTI.Function.DeclaringType;
                    if ((decl.Name != "System.ValueType") && (decl.Name != "System.Object"))
                    return true;

                    TargetClassType parent_type = RTI.Instance.Type.GetParentType (inferior);

                    if (!instance.Type.IsByRef && parent_type.IsByRef) {
                    TargetAddress klass = ((MonoClassObject) instance).KlassAddress;
                    stage = Stage.BoxingInstance;
                    inferior.CallMethod (
                        sse.MonoDebuggerInfo.GetBoxedObjectMethod, klass.Address,
                        instance.Location.GetAddress (inferior).Address, ID);
                    return false;
                    }

                    return true;
                }