Signed-off-by: Tomek Grabiec <tgrab...@gmail.com> --- vm/jato.c | 34 ++++++++++++++++++++++++++-------- 1 files changed, 26 insertions(+), 8 deletions(-)
diff --git a/vm/jato.c b/vm/jato.c index 27f816a..c7c6e17 100644 --- a/vm/jato.c +++ b/vm/jato.c @@ -199,6 +199,17 @@ static const struct preload_entry preload_entries[] = { { "java/lang/Throwable", &vm_java_lang_Throwable }, }; +static const struct preload_entry primitive_preload_entries[] = { + {"Z", &vm_boolean_class}, + {"C", &vm_char_class}, + {"F", &vm_float_class}, + {"D", &vm_double_class}, + {"B", &vm_byte_class}, + {"S", &vm_short_class}, + {"I", &vm_int_class}, + {"J", &vm_long_class}, +}; + struct field_preload_entry { struct vm_class **class; const char *name; @@ -222,6 +233,8 @@ static const struct field_preload_entry field_preload_entries[] = { static int preload_vm_classes(void) { + unsigned int array_size; + for (unsigned int i = 0; i < ARRAY_SIZE(preload_entries); ++i) { const struct preload_entry *pe = &preload_entries[i]; @@ -234,6 +247,19 @@ static int preload_vm_classes(void) *pe->class = class; } + array_size = ARRAY_SIZE(primitive_preload_entries); + for (unsigned int i = 0; i < array_size; ++i) { + const struct preload_entry *pe = &primitive_preload_entries[i]; + + struct vm_class *class = classloader_load_primitive(pe->name); + if (!class) { + NOT_IMPLEMENTED; + return 1; + } + + *pe->class = class; + } + for (unsigned int i = 0; i < ARRAY_SIZE(field_preload_entries); ++i) { const struct field_preload_entry *pe = &field_preload_entries[i]; @@ -248,14 +274,6 @@ static int preload_vm_classes(void) *pe->field = field; } - vm_boolean_class = classloader_load_primitive("Z"); - vm_char_class = classloader_load_primitive("C"); - vm_float_class = classloader_load_primitive("F"); - vm_double_class = classloader_load_primitive("D"); - vm_byte_class = classloader_load_primitive("B"); - vm_short_class = classloader_load_primitive("S"); - vm_int_class = classloader_load_primitive("I"); - vm_long_class = classloader_load_primitive("J"); return 0; } -- 1.6.0.6 ------------------------------------------------------------------------------ _______________________________________________ Jatovm-devel mailing list Jatovm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jatovm-devel