diff --git a/src/coreclr/System.Private.CoreLib/src/System/StubHelpers.cs b/src/coreclr/System.Private.CoreLib/src/System/StubHelpers.cs index 2f3dd00f806914..880c3516e81032 100644 --- a/src/coreclr/System.Private.CoreLib/src/System/StubHelpers.cs +++ b/src/coreclr/System.Private.CoreLib/src/System/StubHelpers.cs @@ -1299,24 +1299,6 @@ public static void AddToCleanupList(ref CleanupWorkListElement? list, CleanupWor } } - // Keeps an object instance alive across the full Managed->Native call. - // This ensures that users don't have to call GC.KeepAlive after passing a struct or class - // that has a delegate field to native code. - internal sealed class KeepAliveCleanupWorkListElement : CleanupWorkListElement - { - public KeepAliveCleanupWorkListElement(object obj) - { - m_obj = obj; - } - - private readonly object m_obj; - - protected override void DestroyCore() - { - GC.KeepAlive(m_obj); - } - } - // Aggregates SafeHandle and the "owned" bit which indicates whether the SafeHandle // has been successfully AddRef'ed. This allows us to do realiable cleanup (Release) // if and only if it is needed. @@ -1367,12 +1349,6 @@ internal static IntPtr AddToCleanupList(ref CleanupWorkListElement? pCleanupWork return element.AddRef(); } - internal static void KeepAliveViaCleanupList(ref CleanupWorkListElement? pCleanupWorkList, object obj) - { - KeepAliveCleanupWorkListElement element = new KeepAliveCleanupWorkListElement(obj); - CleanupWorkListElement.AddToCleanupList(ref pCleanupWorkList, element); - } - internal static void DestroyCleanupList(ref CleanupWorkListElement? pCleanupWorkList) { if (pCleanupWorkList != null) @@ -1564,21 +1540,6 @@ internal static unsafe void FmtClassUpdateCLRInternal(object obj, byte* pNative) } } - internal static unsafe void LayoutDestroyNativeInternal(object obj, byte* pNative) - { - MethodTable* pMT = RuntimeHelpers.GetMethodTable(obj); - - delegate* structMarshalStub; - nuint size; - bool success = Marshal.TryGetStructMarshalStub((IntPtr)pMT, &structMarshalStub, &size); - Debug.Assert(success); - - if (structMarshalStub != null) - { - structMarshalStub(ref obj.GetRawData(), pNative, MarshalOperation.Cleanup, ref Unsafe.NullRef()); - } - } - [LibraryImport(RuntimeHelpers.QCall, EntryPoint="StubHelpers_MarshalToManagedVaList")] internal static partial void MarshalToManagedVaList(IntPtr va_list, IntPtr pArgIterator); diff --git a/src/coreclr/vm/corelib.h b/src/coreclr/vm/corelib.h index ecc8976103d7e5..4588d41deef3d9 100644 --- a/src/coreclr/vm/corelib.h +++ b/src/coreclr/vm/corelib.h @@ -154,8 +154,6 @@ DEFINE_METHOD(CLASS, GET_PROPERTIES, GetProperties, DEFINE_METHOD(CLASS, GET_FIELDS, GetFields, IM_BindingFlags_RetArrFieldInfo) DEFINE_METHOD(CLASS, GET_METHODS, GetMethods, IM_BindingFlags_RetArrMethodInfo) DEFINE_METHOD(CLASS, INVOKE_MEMBER, InvokeMember, IM_Str_BindingFlags_Binder_Obj_ArrObj_ArrParameterModifier_CultureInfo_ArrStr_RetObj) -DEFINE_METHOD(CLASS, GET_METHOD_BASE, GetMethodBase, SM_RuntimeType_RuntimeMethodHandleInternal_RetMethodBase) -DEFINE_METHOD(CLASS, GET_FIELD_INFO, GetFieldInfo, SM_RuntimeType_IRuntimeFieldInfo_RetFieldInfo) #ifdef FOR_ILLINK DEFINE_METHOD(CLASS, CTOR, .ctor, IM_RetVoid) #endif // FOR_ILLINK @@ -196,10 +194,6 @@ END_ILLINK_FEATURE_SWITCH() DEFINE_CLASS(CRITICAL_HANDLE, Interop, CriticalHandle) DEFINE_FIELD(CRITICAL_HANDLE, HANDLE, handle) -DEFINE_METHOD(CRITICAL_HANDLE, RELEASE_HANDLE, ReleaseHandle, IM_RetBool) -DEFINE_METHOD(CRITICAL_HANDLE, GET_IS_INVALID, get_IsInvalid, IM_RetBool) -DEFINE_METHOD(CRITICAL_HANDLE, DISPOSE, Dispose, IM_RetVoid) -DEFINE_METHOD(CRITICAL_HANDLE, DISPOSE_BOOL, Dispose, IM_Bool_RetVoid) DEFINE_CLASS(HANDLE_REF, Interop, HandleRef) DEFINE_FIELD(HANDLE_REF, WRAPPER, _wrapper) @@ -358,7 +352,6 @@ DEFINE_METHOD(VALUETASK, THROW_IF_COMPLETED_UNSUCCESSFULLY, ThrowIfCompletedUnsu DEFINE_METHOD(VALUETASK, AS_TASK_OR_NOTIFIER, AsTaskOrNotifier, IM_RetObj) DEFINE_CLASS(TASK_1, Tasks, Task`1) -DEFINE_METHOD(TASK_1, GET_RESULTONSUCCESS, get_ResultOnSuccess, NoSig) DEFINE_CLASS(TASK, Tasks, Task) DEFINE_METHOD(TASK, FROM_EXCEPTION, FromException, SM_Exception_RetTask) @@ -369,7 +362,6 @@ DEFINE_METHOD(TASK, GET_ISCOMPLETED, get_IsCompleted, NoSig) DEFINE_CLASS(TYPE_HANDLE, System, RuntimeTypeHandle) DEFINE_CLASS(RT_TYPE_HANDLE, System, RuntimeTypeHandle) -DEFINE_METHOD(RT_TYPE_HANDLE, PVOID_CTOR, .ctor, IM_RuntimeType_RetVoid) DEFINE_METHOD(RT_TYPE_HANDLE, GETRUNTIMETYPEFROMHANDLE,GetRuntimeTypeFromHandle, SM_IntPtr_RetRuntimeType) DEFINE_METHOD(RT_TYPE_HANDLE, GETRUNTIMETYPEFROMHANDLEMAYBENULL,GetRuntimeTypeFromHandleMaybeNull, SM_IntPtr_RetRuntimeType) DEFINE_METHOD(RT_TYPE_HANDLE, TO_INTPTR, ToIntPtr, SM_RuntimeTypeHandle_RetIntPtr) @@ -719,7 +711,6 @@ DEFINE_METHOD(RUNTIME_HELPERS, GET_UNINITIALIZED_OBJECT, GetUninitializedOb DEFINE_METHOD(RUNTIME_HELPERS, ENUM_EQUALS, EnumEquals, NoSig) DEFINE_METHOD(RUNTIME_HELPERS, ENUM_COMPARE_TO, EnumCompareTo, NoSig) DEFINE_METHOD(RUNTIME_HELPERS, ALLOC_TAILCALL_ARG_BUFFER, AllocTailCallArgBuffer, NoSig) -DEFINE_METHOD(RUNTIME_HELPERS, GET_TAILCALL_INFO, GetTailCallInfo, NoSig) DEFINE_METHOD(RUNTIME_HELPERS, DISPATCH_TAILCALLS, DispatchTailCalls, NoSig) #ifdef FEATURE_IJW DEFINE_METHOD(RUNTIME_HELPERS, COPY_CONSTRUCT, CopyConstruct, NoSig) @@ -740,7 +731,6 @@ DEFINE_METHOD(ASYNC_HELPERS, TASK_FROM_EXCEPTION_1, TaskFromException, GM_E DEFINE_METHOD(ASYNC_HELPERS, VALUETASK_FROM_EXCEPTION, ValueTaskFromException, SM_Exception_RetValueTask) DEFINE_METHOD(ASYNC_HELPERS, VALUETASK_FROM_EXCEPTION_1, ValueTaskFromException, GM_Exception_RetValueTaskOfT) -DEFINE_METHOD(ASYNC_HELPERS, UNSAFE_AWAIT_AWAITER_1, UnsafeAwaitAwaiter, GM_T_RetVoid) DEFINE_METHOD(ASYNC_HELPERS, TRANSPARENT_AWAIT, TransparentAwait, NoSig) DEFINE_METHOD(ASYNC_HELPERS, COMPLETED_TASK_RESULT, CompletedTaskResult, NoSig) DEFINE_METHOD(ASYNC_HELPERS, COMPLETED_TASK, CompletedTask, NoSig) @@ -754,12 +744,6 @@ DEFINE_METHOD(ASYNC_HELPERS, ASYNC_CALL_CONTINUATION, AsyncCallContinuati #ifdef TARGET_BROWSER DEFINE_METHOD(ASYNC_HELPERS, HANDLE_ASYNC_ENTRYPOINT, HandleAsyncEntryPoint, SM_TaskOfInt_RetInt) DEFINE_METHOD(ASYNC_HELPERS, HANDLE_ASYNC_ENTRYPOINT_VOID, HandleAsyncEntryPoint, SM_Task_RetVoid) - -DEFINE_CLASS(TIMER_QUEUE, Threading, TimerQueue) -DEFINE_METHOD(TIMER_QUEUE, TIMER_HANDLER, TimerHandler, SM_RetVoid) - -DEFINE_CLASS(THREAD_POOL, Threading, ThreadPool) -DEFINE_METHOD(THREAD_POOL, BACKGROUND_JOB_HANDLER, BackgroundJobHandler, SM_RetVoid) #endif // TARGET_BROWSER DEFINE_CLASS(SPAN_HELPERS, System, SpanHelpers) @@ -1077,7 +1061,6 @@ DEFINE_METHOD(STUBHELPERS, CLEAR_LAST_ERROR, ClearLastError, DEFINE_METHOD(STUBHELPERS, THROW_INTEROP_PARAM_EXCEPTION, ThrowInteropParamException, SM_Int_Int_RetVoid) DEFINE_METHOD(STUBHELPERS, ADD_TO_CLEANUP_LIST_SAFEHANDLE, AddToCleanupList, SM_RefCleanupWorkListElement_SafeHandle_RetIntPtr) -DEFINE_METHOD(STUBHELPERS, KEEP_ALIVE_VIA_CLEANUP_LIST, KeepAliveViaCleanupList, SM_RefCleanupWorkListElement_Obj_RetVoid) DEFINE_METHOD(STUBHELPERS, DESTROY_CLEANUP_LIST, DestroyCleanupList, SM_RefCleanupWorkListElement_RetVoid) DEFINE_METHOD(STUBHELPERS, GET_HR_EXCEPTION_OBJECT, GetHRExceptionObject, SM_Int_RetException) DEFINE_METHOD(STUBHELPERS, GET_PENDING_EXCEPTION_OBJECT, GetPendingExceptionObject, SM_RetException) @@ -1088,9 +1071,6 @@ DEFINE_METHOD(STUBHELPERS, GET_IENUMERATOR_TO_ENUM_VARIANT_MARSHALER, G DEFINE_METHOD(STUBHELPERS, CHECK_STRING_LENGTH, CheckStringLength, SM_Int_RetVoid) -DEFINE_METHOD(STUBHELPERS, FMT_CLASS_UPDATE_NATIVE_INTERNAL, FmtClassUpdateNativeInternal, SM_Obj_PtrByte_RefCleanupWorkListElement_RetVoid) -DEFINE_METHOD(STUBHELPERS, FMT_CLASS_UPDATE_CLR_INTERNAL, FmtClassUpdateCLRInternal, SM_Obj_PtrByte_RetVoid) -DEFINE_METHOD(STUBHELPERS, LAYOUT_DESTROY_NATIVE_INTERNAL, LayoutDestroyNativeInternal, SM_Obj_PtrByte_RetVoid) DEFINE_METHOD(STUBHELPERS, MARSHAL_TO_MANAGED_VA_LIST, MarshalToManagedVaList, SM_IntPtr_IntPtr_RetVoid) DEFINE_METHOD(STUBHELPERS, MARSHAL_TO_UNMANAGED_VA_LIST, MarshalToUnmanagedVaList, SM_IntPtr_UInt_IntPtr_RetVoid) DEFINE_METHOD(STUBHELPERS, CALC_VA_LIST_SIZE, CalcVaListSize, SM_IntPtr_RetUInt) diff --git a/src/coreclr/vm/metasig.h b/src/coreclr/vm/metasig.h index 065690fd812428..0b3e375808c1f2 100644 --- a/src/coreclr/vm/metasig.h +++ b/src/coreclr/vm/metasig.h @@ -219,15 +219,11 @@ DEFINE_METASIG(SM(RetBool, _, F)) DEFINE_METASIG(SM(IntPtr_RetStr, I, s)) DEFINE_METASIG(SM(IntPtr_RetBool, I, F)) DEFINE_METASIG(SM(UInt_IntPtr_RetStr, K I, s)) -DEFINE_METASIG_T(SM(RuntimeType_RuntimeMethodHandleInternal_RetMethodBase, C(CLASS) g(METHOD_HANDLE_INTERNAL), C(METHOD_BASE) )) -DEFINE_METASIG_T(SM(RuntimeType_IRuntimeFieldInfo_RetFieldInfo, C(CLASS) C(I_RT_FIELD_INFO), C(FIELD_INFO) )) DEFINE_METASIG(SM(Char_Bool_Bool_RetByte, u F F, b)) DEFINE_METASIG(SM(Byte_RetChar, b, u)) DEFINE_METASIG(SM(Str_Bool_Bool_RefInt_RetIntPtr, s F F r(i), I)) DEFINE_METASIG(SM(IntPtr_Int_RetStr, I i, s)) -DEFINE_METASIG_T(SM(Obj_PtrByte_RefCleanupWorkListElement_RetVoid, j P(b) r(C(CLEANUP_WORK_LIST_ELEMENT)), v)) DEFINE_METASIG_T(SM(SafeHandle_RefCleanupWorkListElement_RetIntPtr, C(SAFE_HANDLE) r(C(CLEANUP_WORK_LIST_ELEMENT)), I)) -DEFINE_METASIG(SM(Obj_PtrByte_RetVoid, j P(b), v)) DEFINE_METASIG(SM(PtrByte_IntPtr_RetVoid, P(b) I, v)) DEFINE_METASIG(SM(Str_Bool_Bool_RefInt_RetArrByte, s F F r(i), a(b) )) DEFINE_METASIG(SM(ArrByte_Int_PtrByte_Int_Int_RetVoid, a(b) i P(b) i i, v)) @@ -517,7 +513,6 @@ DEFINE_METASIG_T(IM(ArrType_ArrException_Str_RetVoid, a(C(TYPE)) a(C(EXCEPTION)) DEFINE_METASIG(IM(RefInt_RefInt_RefInt_RetArrByte, r(i) r(i) r(i), a(b))) DEFINE_METASIG_T(IM(RefInt_RetRuntimeType, r(i) , C(CLASS))) DEFINE_METASIG_T(SM(IntPtr_RetRuntimeType, I , C(CLASS))) -DEFINE_METASIG_T(IM(RuntimeType_RetVoid, C(CLASS) , v)) DEFINE_METASIG_T(IM(RuntimeArgumentHandle_PtrVoid_RetVoid, g(ARGUMENT_HANDLE) P(v), v)) @@ -584,7 +579,6 @@ DEFINE_METASIG(SM(RefUShrt_UShrt_UShrt_RetUShrt, r(H) H H, H)) DEFINE_METASIG_T(SM(RefCleanupWorkListElement_RetVoid, r(C(CLEANUP_WORK_LIST_ELEMENT)), v)) DEFINE_METASIG_T(SM(RefCleanupWorkListElement_SafeHandle_RetIntPtr, r(C(CLEANUP_WORK_LIST_ELEMENT)) C(SAFE_HANDLE), I)) -DEFINE_METASIG_T(SM(RefCleanupWorkListElement_Obj_RetVoid, r(C(CLEANUP_WORK_LIST_ELEMENT)) j, v)) DEFINE_METASIG(SM(PtrVoid_RetPtrVoid, P(v), P(v))) DEFINE_METASIG(IM(PtrVoid_RetVoid, P(v), v))