X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fbackends%2Fjvm%2Fgenerator-jvm-asm.c;h=4d0e471bf5abc0ad7027da13c4c5d8c4f35819f1;hb=35e75d29be18a7355aaaea9e146f3fda1d91857f;hp=4aee145479330f49cb12751047bf244bc14b72a4;hpb=1ef429eea9ba6825395446aac0b5980454ac0383;p=dsw-obn.git diff --git a/src/backends/jvm/generator-jvm-asm.c b/src/backends/jvm/generator-jvm-asm.c index 4aee145..4d0e471 100644 --- a/src/backends/jvm/generator-jvm-asm.c +++ b/src/backends/jvm/generator-jvm-asm.c @@ -8,7 +8,6 @@ #include -#include "../../../include/oberon.h" #include "../../oberon-internals.h" #include "generator-jvm.h" #include "generator-jvm-abi.h" @@ -70,15 +69,20 @@ jvm_generate_function_end(gen_proc_t * p) } struct gen_class * -jvm_create_class(char * full_name) +jvm_create_class(const char * dir, char * full_name) { struct gen_class * class = GC_MALLOC(sizeof *class); memset(class, 0, sizeof *class); - char * fname = new_string("%s.j", full_name); + char * fname = new_string("%s/%s.j", dir, full_name); class -> full_name = new_string(full_name); class -> fp = fopen(fname, "w"); - assert(class -> fp); + class -> dir = new_string(dir); + + if(class -> fp == NULL) + { + gen_error("unable to create file %s", fname); + } return class; } @@ -231,11 +235,11 @@ jvm_generate_push_float(gen_proc_t * p, double f, int size) { jvm_generate(p, 0, 1, "fconst_0"); } - if(f == 1.0) + else if(f == 1.0) { jvm_generate(p, 0, 1, "fconst_1"); } - if(f == 2.0) + else if(f == 2.0) { jvm_generate(p, 0, 1, "fconst_2"); } @@ -250,7 +254,7 @@ jvm_generate_push_float(gen_proc_t * p, double f, int size) { jvm_generate(p, 0, 2, "dconst_0"); } - if(f == 1.0) + else if(f == 1.0) { jvm_generate(p, 0, 2, "dconst_1"); }