[runtime] Implement mono_value_box for CoreCLR. (#11533)
This commit is contained in:
Родитель
8f1f367424
Коммит
95dfc4fa39
|
@ -339,6 +339,14 @@ mono_object_isinst (MonoObject * obj, MonoClass * klass)
|
|||
return rv ? obj : NULL;
|
||||
}
|
||||
|
||||
MonoObject *
|
||||
mono_value_box (MonoDomain *domain, MonoClass *klass, void *val)
|
||||
{
|
||||
MonoObject *rv = xamarin_bridge_box (klass, val);
|
||||
LOG_CORECLR (stderr, "%s (%p, %p, %p) => %p\n", __func__, domain, klass, val, rv);
|
||||
return rv;
|
||||
}
|
||||
|
||||
void *
|
||||
mono_object_unbox (MonoObject *obj)
|
||||
{
|
||||
|
|
|
@ -401,6 +401,15 @@
|
|||
OnlyCoreCLR = true,
|
||||
},
|
||||
|
||||
new XDelegate ("MonoObject *", "MonoObject *", "xamarin_bridge_box",
|
||||
"MonoObject *", "MonoObject *", "typeobj",
|
||||
"void *", "IntPtr", "value"
|
||||
) {
|
||||
WrappedManagedFunction = "Box",
|
||||
OnlyDynamicUsage = false,
|
||||
OnlyCoreCLR = true,
|
||||
},
|
||||
|
||||
new XDelegate ("MonoObject*", "IntPtr", "xamarin_bridge_get_monoobject",
|
||||
"GCHandle", "IntPtr", "gchandle"
|
||||
) {
|
||||
|
|
|
@ -199,7 +199,9 @@
|
|||
"MonoDomain *", "domain",
|
||||
"MonoClass *", "klass",
|
||||
"void *", "val"
|
||||
),
|
||||
) {
|
||||
HasCoreCLRBridgeFunction = true,
|
||||
},
|
||||
|
||||
new Export ("void", "mono_gc_wbarrier_set_arrayref",
|
||||
"MonoArray *", "arr",
|
||||
|
|
Загрузка…
Ссылка в новой задаче