< prev index next >

src/share/vm/ci/ciReplay.cpp

Print this page




 782         }
 783         value = kelem->multi_allocate(rank, dims, CHECK);
 784       } else {
 785         if (strcmp(field_signature, "[B") == 0) {
 786           value = oopFactory::new_byteArray(length, CHECK);
 787         } else if (strcmp(field_signature, "[Z") == 0) {
 788           value = oopFactory::new_boolArray(length, CHECK);
 789         } else if (strcmp(field_signature, "[C") == 0) {
 790           value = oopFactory::new_charArray(length, CHECK);
 791         } else if (strcmp(field_signature, "[S") == 0) {
 792           value = oopFactory::new_shortArray(length, CHECK);
 793         } else if (strcmp(field_signature, "[F") == 0) {
 794           value = oopFactory::new_singleArray(length, CHECK);
 795         } else if (strcmp(field_signature, "[D") == 0) {
 796           value = oopFactory::new_doubleArray(length, CHECK);
 797         } else if (strcmp(field_signature, "[I") == 0) {
 798           value = oopFactory::new_intArray(length, CHECK);
 799         } else if (strcmp(field_signature, "[J") == 0) {
 800           value = oopFactory::new_longArray(length, CHECK);
 801         } else if (field_signature[0] == '[' && field_signature[1] == 'L') {
 802           KlassHandle kelem = resolve_klass(field_signature + 1, CHECK);
 803           value = oopFactory::new_objArray(kelem(), length, CHECK);
 804         } else {
 805           report_error("unhandled array staticfield");
 806         }
 807       }
 808       java_mirror->obj_field_put(fd.offset(), value);
 809     } else {
 810       const char* string_value = parse_escaped_string();
 811       if (strcmp(field_signature, "I") == 0) {
 812         int value = atoi(string_value);
 813         java_mirror->int_field_put(fd.offset(), value);
 814       } else if (strcmp(field_signature, "B") == 0) {
 815         int value = atoi(string_value);
 816         java_mirror->byte_field_put(fd.offset(), value);
 817       } else if (strcmp(field_signature, "C") == 0) {
 818         int value = atoi(string_value);
 819         java_mirror->char_field_put(fd.offset(), value);
 820       } else if (strcmp(field_signature, "S") == 0) {
 821         int value = atoi(string_value);
 822         java_mirror->short_field_put(fd.offset(), value);
 823       } else if (strcmp(field_signature, "Z") == 0) {
 824         int value = atoi(string_value);
 825         java_mirror->bool_field_put(fd.offset(), value);
 826       } else if (strcmp(field_signature, "J") == 0) {
 827         jlong value;
 828         if (sscanf(string_value, JLONG_FORMAT, &value) != 1) {
 829           fprintf(stderr, "Error parsing long: %s\n", string_value);
 830           return;
 831         }
 832         java_mirror->long_field_put(fd.offset(), value);
 833       } else if (strcmp(field_signature, "F") == 0) {
 834         float value = atof(string_value);
 835         java_mirror->float_field_put(fd.offset(), value);
 836       } else if (strcmp(field_signature, "D") == 0) {
 837         double value = atof(string_value);
 838         java_mirror->double_field_put(fd.offset(), value);
 839       } else if (strcmp(field_signature, "Ljava/lang/String;") == 0) {
 840         Handle value = java_lang_String::create_from_str(string_value, CHECK);
 841         java_mirror->obj_field_put(fd.offset(), value());
 842       } else if (field_signature[0] == 'L') {
 843         KlassHandle k = resolve_klass(string_value, CHECK);
 844         oop value = InstanceKlass::cast(k())->allocate_instance(CHECK);
 845         java_mirror->obj_field_put(fd.offset(), value);
 846       } else {
 847         report_error("unhandled staticfield");
 848       }
 849     }
 850   }
 851 
 852 #if INCLUDE_JVMTI
 853   void process_JvmtiExport(TRAPS) {
 854     const char* field = parse_string();
 855     bool value = parse_int("JvmtiExport flag") != 0;
 856     if (strcmp(field, "can_access_local_variables") == 0) {
 857       JvmtiExport::set_can_access_local_variables(value);
 858     } else if (strcmp(field, "can_hotswap_or_post_breakpoint") == 0) {
 859       JvmtiExport::set_can_hotswap_or_post_breakpoint(value);
 860     } else if (strcmp(field, "can_post_on_exceptions") == 0) {
 861       JvmtiExport::set_can_post_on_exceptions(value);
 862     } else {
 863       report_error("Unrecognized JvmtiExport directive");
 864     }




 782         }
 783         value = kelem->multi_allocate(rank, dims, CHECK);
 784       } else {
 785         if (strcmp(field_signature, "[B") == 0) {
 786           value = oopFactory::new_byteArray(length, CHECK);
 787         } else if (strcmp(field_signature, "[Z") == 0) {
 788           value = oopFactory::new_boolArray(length, CHECK);
 789         } else if (strcmp(field_signature, "[C") == 0) {
 790           value = oopFactory::new_charArray(length, CHECK);
 791         } else if (strcmp(field_signature, "[S") == 0) {
 792           value = oopFactory::new_shortArray(length, CHECK);
 793         } else if (strcmp(field_signature, "[F") == 0) {
 794           value = oopFactory::new_singleArray(length, CHECK);
 795         } else if (strcmp(field_signature, "[D") == 0) {
 796           value = oopFactory::new_doubleArray(length, CHECK);
 797         } else if (strcmp(field_signature, "[I") == 0) {
 798           value = oopFactory::new_intArray(length, CHECK);
 799         } else if (strcmp(field_signature, "[J") == 0) {
 800           value = oopFactory::new_longArray(length, CHECK);
 801         } else if (field_signature[0] == '[' && field_signature[1] == 'L') {
 802           Klass* kelem = resolve_klass(field_signature + 1, CHECK);
 803           value = oopFactory::new_objArray(kelem, length, CHECK);
 804         } else {
 805           report_error("unhandled array staticfield");
 806         }
 807       }
 808       java_mirror->obj_field_put(fd.offset(), value);
 809     } else {
 810       const char* string_value = parse_escaped_string();
 811       if (strcmp(field_signature, "I") == 0) {
 812         int value = atoi(string_value);
 813         java_mirror->int_field_put(fd.offset(), value);
 814       } else if (strcmp(field_signature, "B") == 0) {
 815         int value = atoi(string_value);
 816         java_mirror->byte_field_put(fd.offset(), value);
 817       } else if (strcmp(field_signature, "C") == 0) {
 818         int value = atoi(string_value);
 819         java_mirror->char_field_put(fd.offset(), value);
 820       } else if (strcmp(field_signature, "S") == 0) {
 821         int value = atoi(string_value);
 822         java_mirror->short_field_put(fd.offset(), value);
 823       } else if (strcmp(field_signature, "Z") == 0) {
 824         int value = atoi(string_value);
 825         java_mirror->bool_field_put(fd.offset(), value);
 826       } else if (strcmp(field_signature, "J") == 0) {
 827         jlong value;
 828         if (sscanf(string_value, JLONG_FORMAT, &value) != 1) {
 829           fprintf(stderr, "Error parsing long: %s\n", string_value);
 830           return;
 831         }
 832         java_mirror->long_field_put(fd.offset(), value);
 833       } else if (strcmp(field_signature, "F") == 0) {
 834         float value = atof(string_value);
 835         java_mirror->float_field_put(fd.offset(), value);
 836       } else if (strcmp(field_signature, "D") == 0) {
 837         double value = atof(string_value);
 838         java_mirror->double_field_put(fd.offset(), value);
 839       } else if (strcmp(field_signature, "Ljava/lang/String;") == 0) {
 840         Handle value = java_lang_String::create_from_str(string_value, CHECK);
 841         java_mirror->obj_field_put(fd.offset(), value());
 842       } else if (field_signature[0] == 'L') {
 843         Klass* k = resolve_klass(string_value, CHECK);
 844         oop value = InstanceKlass::cast(k)->allocate_instance(CHECK);
 845         java_mirror->obj_field_put(fd.offset(), value);
 846       } else {
 847         report_error("unhandled staticfield");
 848       }
 849     }
 850   }
 851 
 852 #if INCLUDE_JVMTI
 853   void process_JvmtiExport(TRAPS) {
 854     const char* field = parse_string();
 855     bool value = parse_int("JvmtiExport flag") != 0;
 856     if (strcmp(field, "can_access_local_variables") == 0) {
 857       JvmtiExport::set_can_access_local_variables(value);
 858     } else if (strcmp(field, "can_hotswap_or_post_breakpoint") == 0) {
 859       JvmtiExport::set_can_hotswap_or_post_breakpoint(value);
 860     } else if (strcmp(field, "can_post_on_exceptions") == 0) {
 861       JvmtiExport::set_can_post_on_exceptions(value);
 862     } else {
 863       report_error("Unrecognized JvmtiExport directive");
 864     }


< prev index next >