equal
deleted
inserted
replaced
749 return; |
749 return; |
750 } |
750 } |
751 |
751 |
752 assert(k->is_initialized(), "must be"); |
752 assert(k->is_initialized(), "must be"); |
753 |
753 |
754 const char* field_name = parse_escaped_string();; |
754 const char* field_name = parse_escaped_string(); |
755 const char* field_signature = parse_string(); |
755 const char* field_signature = parse_string(); |
756 fieldDescriptor fd; |
756 fieldDescriptor fd; |
757 Symbol* name = SymbolTable::lookup(field_name, (int)strlen(field_name), CHECK); |
757 Symbol* name = SymbolTable::lookup(field_name, (int)strlen(field_name), CHECK); |
758 Symbol* sig = SymbolTable::lookup(field_signature, (int)strlen(field_signature), CHECK); |
758 Symbol* sig = SymbolTable::lookup(field_signature, (int)strlen(field_signature), CHECK); |
759 if (!k->find_local_field(name, sig, &fd) || |
759 if (!k->find_local_field(name, sig, &fd) || |
838 java_mirror->double_field_put(fd.offset(), value); |
838 java_mirror->double_field_put(fd.offset(), value); |
839 } else if (strcmp(field_signature, "Ljava/lang/String;") == 0) { |
839 } else if (strcmp(field_signature, "Ljava/lang/String;") == 0) { |
840 Handle value = java_lang_String::create_from_str(string_value, CHECK); |
840 Handle value = java_lang_String::create_from_str(string_value, CHECK); |
841 java_mirror->obj_field_put(fd.offset(), value()); |
841 java_mirror->obj_field_put(fd.offset(), value()); |
842 } else if (field_signature[0] == 'L') { |
842 } else if (field_signature[0] == 'L') { |
843 Symbol* klass_name = SymbolTable::lookup(field_signature, (int)strlen(field_signature), CHECK); |
843 KlassHandle k = resolve_klass(string_value, CHECK); |
844 KlassHandle kelem = resolve_klass(field_signature, CHECK); |
844 oop value = InstanceKlass::cast(k())->allocate_instance(CHECK); |
845 oop value = InstanceKlass::cast(kelem())->allocate_instance(CHECK); |
|
846 java_mirror->obj_field_put(fd.offset(), value); |
845 java_mirror->obj_field_put(fd.offset(), value); |
847 } else { |
846 } else { |
848 report_error("unhandled staticfield"); |
847 report_error("unhandled staticfield"); |
849 } |
848 } |
850 } |
849 } |