index 24c28b057429313018bf1529c64154c1e2a27825..bcd82a25476803cbcd4aca6e8aa0ecf9f4c24934 100644 (file)
return new_string("V");
break;
case OBERON_TYPE_INTEGER:
+ case OBERON_TYPE_SET:
switch(type -> size)
{
case 1:
return jvm_get_class_full_name(type);
break;
case OBERON_TYPE_ARRAY:
- return new_string("A%sX", jvm_get_descriptor_safe(type -> base));
+ return new_string("A%s", jvm_get_descriptor_safe(type -> base));
break;
default:
return jvm_get_descriptor(type);
case OBERON_TYPE_BOOLEAN:
case OBERON_TYPE_INTEGER:
case OBERON_TYPE_CHAR:
+ case OBERON_TYPE_SET:
return (size <= 4) ? ('i') : ('l');
break;
case OBERON_TYPE_PROCEDURE:
return 'b';
break;
case OBERON_TYPE_INTEGER:
+ case OBERON_TYPE_SET:
switch(size)
{
case 1:
jvm_cell_size_for_type(oberon_type_t * type)
{
if(type -> class == OBERON_TYPE_INTEGER
- || type -> class == OBERON_TYPE_REAL)
+ || type -> class == OBERON_TYPE_REAL
+ || type -> class == OBERON_TYPE_CHAR
+ || type -> class == OBERON_TYPE_SET)
{
if(type -> size > 4)
{
return 2;
}
}
+ else if(type -> class == OBERON_TYPE_VOID)
+ {
+ return 0;
+ }
return 1;
}