Needed for VMSystemProperties initialisation. Signed-off-by: Vegard Nossum <vegard.nos...@gmail.com> --- include/vm/java_lang.h | 4 ++++ vm/jato.c | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 0 deletions(-)
diff --git a/include/vm/java_lang.h b/include/vm/java_lang.h index 218a358..06ed716 100644 --- a/include/vm/java_lang.h +++ b/include/vm/java_lang.h @@ -5,6 +5,8 @@ extern struct vm_class *vm_java_lang_Object; extern struct vm_class *vm_java_lang_Class; extern struct vm_class *vm_java_lang_String; extern struct vm_class *vm_java_lang_Throwable; +extern struct vm_class *vm_java_util_Properties; + extern struct vm_class *vm_boolean_class; extern struct vm_class *vm_char_class; extern struct vm_class *vm_float_class; @@ -20,4 +22,6 @@ extern struct vm_field *vm_java_lang_String_count; extern struct vm_field *vm_java_lang_String_value; extern struct vm_field *vm_java_lang_Throwable_detailMessage; +extern struct vm_method *vm_java_util_Properties_setProperty; + #endif diff --git a/vm/jato.c b/vm/jato.c index 12badf2..565754c 100644 --- a/vm/jato.c +++ b/vm/jato.c @@ -237,6 +237,8 @@ struct vm_class *vm_java_lang_Object; struct vm_class *vm_java_lang_Class; struct vm_class *vm_java_lang_String; struct vm_class *vm_java_lang_Throwable; +struct vm_class *vm_java_util_Properties; + struct vm_class *vm_boolean_class; struct vm_class *vm_char_class; struct vm_class *vm_float_class; @@ -251,6 +253,7 @@ static const struct preload_entry preload_entries[] = { { "java/lang/Class", &vm_java_lang_Class }, { "java/lang/String", &vm_java_lang_String }, { "java/lang/Throwable", &vm_java_lang_Throwable }, + { "java/util/Properties", &vm_java_util_Properties }, }; static const struct preload_entry primitive_preload_entries[] = { @@ -285,6 +288,24 @@ static const struct field_preload_entry field_preload_entries[] = { { &vm_java_lang_Throwable, "detailMessage", "Ljava/lang/String;", &vm_java_lang_Throwable_detailMessage }, }; +struct method_preload_entry { + struct vm_class **class; + const char *name; + const char *type; + struct vm_method **method; +}; + +struct vm_method *vm_java_util_Properties_setProperty; + +static const struct method_preload_entry method_preload_entries[] = { + { + &vm_java_util_Properties, + "setProperty", + "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;", + &vm_java_util_Properties_setProperty, + }, +}; + static int preload_vm_classes(void) { unsigned int array_size; @@ -328,6 +349,19 @@ static int preload_vm_classes(void) *pe->field = field; } + for (unsigned int i = 0; i < ARRAY_SIZE(method_preload_entries); ++i) { + const struct method_preload_entry *me + = &method_preload_entries[i]; + + struct vm_method *method = vm_class_get_method(*me->class, + me->name, me->type); + if (!method) { + NOT_IMPLEMENTED; + return 1; + } + + *me->method = method; + } return 0; } -- 1.6.0.4 ------------------------------------------------------------------------------ _______________________________________________ Jatovm-devel mailing list Jatovm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jatovm-devel