case MONO_TYPE_U:
/* Treat it as a vtype */
goto handle_vtype;
- case MONO_TYPE_PTR: {
+ case MONO_TYPE_PTR:
+ case MONO_TYPE_FNPTR: {
gssize val = *(gssize*)addr;
buffer_add_byte (buf, t->type);
!(type == VALUE_TYPE_ID_FIXED_ARRAY) &&
!(t->type == MONO_TYPE_U && type == MONO_TYPE_VALUETYPE) &&
!(t->type == MONO_TYPE_PTR && type == MONO_TYPE_I8) &&
+ !(t->type == MONO_TYPE_FNPTR && type == MONO_TYPE_I8) &&
!(t->type == MONO_TYPE_GENERICINST && type == MONO_TYPE_VALUETYPE) &&
!(t->type == MONO_TYPE_VALUETYPE && type == MONO_TYPE_OBJECT)) {
char *name = mono_type_full_name (t);
*(guint64*)addr = decode_long (buf, &buf, limit);
break;
case MONO_TYPE_PTR:
+ case MONO_TYPE_FNPTR:
/* We send these as I8, so we get them back as such */
g_assert (type == MONO_TYPE_I8);
*(gssize*)addr = decode_long (buf, &buf, limit);
// FIXME: Can't decide whenever a class represents a byref type
if (FALSE)
b |= (1 << 0);
- if (type->type == MONO_TYPE_PTR)
+ if (type->type == MONO_TYPE_PTR || type->type == MONO_TYPE_FNPTR)
b |= (1 << 1);
if (!type->byref && (((type->type >= MONO_TYPE_BOOLEAN) && (type->type <= MONO_TYPE_R8)) || (type->type == MONO_TYPE_I) || (type->type == MONO_TYPE_U)))
b |= (1 << 2);
result->data.nati = *(mono_i*)data;
return;
case MONO_TYPE_PTR:
+ case MONO_TYPE_FNPTR:
result->data.p = *(gpointer*)data;
return;
case MONO_TYPE_U4:
mono_gc_wbarrier_generic_store_internal (p, val->data.o);
return;
}
- case MONO_TYPE_PTR: {
+ case MONO_TYPE_PTR:
+ case MONO_TYPE_FNPTR: {
gpointer *p = (gpointer *) data;
*p = val->data.p;
return;
case MONO_TYPE_OBJECT:
case MONO_TYPE_ARRAY:
case MONO_TYPE_PTR:
+ case MONO_TYPE_FNPTR:
return &val->data.p;
case MONO_TYPE_VALUETYPE:
if (m_class_is_enumtype (type->data.klass))
case MONO_TYPE_I:
case MONO_TYPE_U:
case MONO_TYPE_PTR:
+ case MONO_TYPE_FNPTR:
case MONO_TYPE_SZARRAY:
case MONO_TYPE_CLASS:
case MONO_TYPE_OBJECT:
case MONO_TYPE_I:
case MONO_TYPE_U:
case MONO_TYPE_PTR:
+ case MONO_TYPE_FNPTR:
case MONO_TYPE_SZARRAY:
case MONO_TYPE_CLASS:
case MONO_TYPE_OBJECT:
case MONO_TYPE_I:
case MONO_TYPE_U:
case MONO_TYPE_PTR:
+ case MONO_TYPE_FNPTR:
case MONO_TYPE_SZARRAY:
case MONO_TYPE_CLASS:
case MONO_TYPE_OBJECT:
case MONO_TYPE_OBJECT:
case MONO_TYPE_ARRAY:
case MONO_TYPE_PTR:
+ case MONO_TYPE_FNPTR:
case MONO_TYPE_I:
case MONO_TYPE_U:
g_string_append_printf (str, "[%p] ", s->data.p);