internal IntPtr InvokeObjectArrayDelegate(object[] arguments) { if (!_conversionInfo.IsObjectArrayDelegateThunk) { Environment.FailFast("Thunk is not an object array delegate thunk!"); } Debug.Assert(!_delegateData.Equals(default(DelegateData))); Func <object[], object> targetDelegate = _delegateData._helperObject as Func <object[], object>; Debug.Assert(targetDelegate != null); s_pinnedGCHandles._returnObjectHandle.Target = targetDelegate(arguments ?? Array.Empty <object>()); return(RuntimeAugments.GetRawAddrOfPinnedObject((IntPtr)s_pinnedGCHandles._returnObjectHandle)); }