X-Git-Url: http://deadsoftware.ru/gitweb?p=dsw-obn.git;a=blobdiff_plain;f=src%2Fbackends%2Fjvm%2Fgenerator-jvm-basic.c;h=2baed6556849dc01aa1d61d9fda6836cccf7642c;hp=478a92c6f38cb91acb3c03c3f939c3158023d5f3;hb=0570527a2279ee6bd14b4c08e653b6d68369475a;hpb=0b68ac1af511e1e47b1e6a8f5617200db6819ee5 diff --git a/src/backends/jvm/generator-jvm-basic.c b/src/backends/jvm/generator-jvm-basic.c index 478a92c..2baed65 100644 --- a/src/backends/jvm/generator-jvm-basic.c +++ b/src/backends/jvm/generator-jvm-basic.c @@ -149,6 +149,9 @@ jvm_get_descriptor(oberon_type_t * type) break; } break; + case OBERON_TYPE_SYSTEM_PTR: + return new_string("Ljava/lang/Object;"); + break; default: gen_error("jvm_get_descriptor: unsupported type class %i", type -> class); break; @@ -172,6 +175,9 @@ jvm_get_descriptor_safe(oberon_type_t * type) case OBERON_TYPE_ARRAY: return new_string("A%s", jvm_get_descriptor_safe(type -> base)); break; + case OBERON_TYPE_SYSTEM_PTR: + return new_string("SYSPTR"); + break; default: return jvm_get_descriptor(type); break; @@ -199,6 +205,7 @@ jvm_get_prefix(oberon_type_t * type) case OBERON_TYPE_POINTER: case OBERON_TYPE_STRING: case OBERON_TYPE_NIL: + case OBERON_TYPE_SYSTEM_PTR: return 'a'; break; case OBERON_TYPE_REAL: @@ -270,6 +277,7 @@ jvm_get_postfix(oberon_type_t * type) case OBERON_TYPE_POINTER: case OBERON_TYPE_STRING: case OBERON_TYPE_NIL: + case OBERON_TYPE_SYSTEM_PTR: return 'a'; break; case OBERON_TYPE_REAL: @@ -386,6 +394,9 @@ jvm_get_class_full_name(oberon_type_t * type) rec_id = type -> gen_type -> rec_id; name = new_string("%s$RECORD%i", type -> module -> name, rec_id); break; + case OBERON_TYPE_SYSTEM_PTR: + name = new_string("java/lang/Object"); + break; default: gen_error("jvm_get_class_full_name: unk type class %i", type -> class); break;