You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add missing root for method instances used in opaque closure (#50359)
Usually the rooting path for method instances is something like this:
Module -> DataType -> TypeName -> MethodTable -> Method ->
MethodInstance
so these MethodInstances are effectively globally rooted. However, the
Method(instances) inside opaque closures do not have this rooting path
and can be deleted. Unfortunately, if we codegen'ed these opaque
closures, we do have a reference to the method instance in our global
debuginfo tables. This was causing crashes in cases where the oc was
gc'ed before a stack trace could be printed. Fix that by adding any
method instance that needs to be rooted to the global roots table.
Reported by @staticfloat
0 commit comments