[runtime] Implement mono_value_box for CoreCLR. (#11533)

This commit is contained in:
Rolf Bjarne Kvinge 2021-05-13 20:38:21 +02:00 коммит произвёл GitHub
Родитель 8f1f367424
Коммит 95dfc4fa39
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
3 изменённых файлов: 20 добавлений и 1 удалений

Просмотреть файл

@ -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",