< prev index next >

src/hotspot/share/ci/ciReplay.cpp

Print this page




 893         value = kelem->multi_allocate(rank, dims, CHECK_(true));
 894       } else {
 895         if (strcmp(field_signature, "[B") == 0) {
 896           value = oopFactory::new_byteArray(length, CHECK_(true));
 897         } else if (strcmp(field_signature, "[Z") == 0) {
 898           value = oopFactory::new_boolArray(length, CHECK_(true));
 899         } else if (strcmp(field_signature, "[C") == 0) {
 900           value = oopFactory::new_charArray(length, CHECK_(true));
 901         } else if (strcmp(field_signature, "[S") == 0) {
 902           value = oopFactory::new_shortArray(length, CHECK_(true));
 903         } else if (strcmp(field_signature, "[F") == 0) {
 904           value = oopFactory::new_floatArray(length, CHECK_(true));
 905         } else if (strcmp(field_signature, "[D") == 0) {
 906           value = oopFactory::new_doubleArray(length, CHECK_(true));
 907         } else if (strcmp(field_signature, "[I") == 0) {
 908           value = oopFactory::new_intArray(length, CHECK_(true));
 909         } else if (strcmp(field_signature, "[J") == 0) {
 910           value = oopFactory::new_longArray(length, CHECK_(true));
 911         } else if (field_signature[0] == '[' && field_signature[1] == 'L') {
 912           Klass* kelem = resolve_klass(field_signature + 1, CHECK_(true));
 913           value = oopFactory::new_array(kelem, length, CHECK_(true));



 914         } else {
 915           report_error("unhandled array staticfield");
 916         }
 917       }
 918       java_mirror->obj_field_put(fd->offset(), value);
 919       return true;
 920     } else if (strcmp(field_signature, "Ljava/lang/String;") == 0) {
 921       const char* string_value = parse_escaped_string();
 922       Handle value = java_lang_String::create_from_str(string_value, CHECK_(true));
 923       java_mirror->obj_field_put(fd->offset(), value());
 924       return true;
 925     } else if (field_signature[0] == 'L') {
 926       Klass* k = resolve_klass(field_signature, CHECK_(true));
 927       oop value = InstanceKlass::cast(k)->allocate_instance(CHECK_(true));
 928       java_mirror->obj_field_put(fd->offset(), value);
 929       return true;
 930     }
 931     return false;
 932   }
 933 




 893         value = kelem->multi_allocate(rank, dims, CHECK_(true));
 894       } else {
 895         if (strcmp(field_signature, "[B") == 0) {
 896           value = oopFactory::new_byteArray(length, CHECK_(true));
 897         } else if (strcmp(field_signature, "[Z") == 0) {
 898           value = oopFactory::new_boolArray(length, CHECK_(true));
 899         } else if (strcmp(field_signature, "[C") == 0) {
 900           value = oopFactory::new_charArray(length, CHECK_(true));
 901         } else if (strcmp(field_signature, "[S") == 0) {
 902           value = oopFactory::new_shortArray(length, CHECK_(true));
 903         } else if (strcmp(field_signature, "[F") == 0) {
 904           value = oopFactory::new_floatArray(length, CHECK_(true));
 905         } else if (strcmp(field_signature, "[D") == 0) {
 906           value = oopFactory::new_doubleArray(length, CHECK_(true));
 907         } else if (strcmp(field_signature, "[I") == 0) {
 908           value = oopFactory::new_intArray(length, CHECK_(true));
 909         } else if (strcmp(field_signature, "[J") == 0) {
 910           value = oopFactory::new_longArray(length, CHECK_(true));
 911         } else if (field_signature[0] == '[' && field_signature[1] == 'L') {
 912           Klass* kelem = resolve_klass(field_signature + 1, CHECK_(true));
 913           value = oopFactory::new_objArray(kelem, length, CHECK_(true));
 914         } else if (field_signature[0] == '[' && field_signature[1] == 'Q') {
 915           Klass* kelem = resolve_klass(field_signature + 1, CHECK_(true));
 916           value = oopFactory::new_valueArray(kelem, length, CHECK_(true));
 917         } else {
 918           report_error("unhandled array staticfield");
 919         }
 920       }
 921       java_mirror->obj_field_put(fd->offset(), value);
 922       return true;
 923     } else if (strcmp(field_signature, "Ljava/lang/String;") == 0) {
 924       const char* string_value = parse_escaped_string();
 925       Handle value = java_lang_String::create_from_str(string_value, CHECK_(true));
 926       java_mirror->obj_field_put(fd->offset(), value());
 927       return true;
 928     } else if (field_signature[0] == 'L') {
 929       Klass* k = resolve_klass(field_signature, CHECK_(true));
 930       oop value = InstanceKlass::cast(k)->allocate_instance(CHECK_(true));
 931       java_mirror->obj_field_put(fd->offset(), value);
 932       return true;
 933     }
 934     return false;
 935   }
 936 


< prev index next >