comparison src/share/vm/classfile/classFileParser.cpp @ 18060:b207affc0618

Merge
author asaha
date Tue, 03 Jun 2014 21:36:53 -0700
parents f73af4455d7d 3b0fe4ec6ebe
children 4930a95e6ef5
comparison
equal deleted inserted replaced
18059:ec8878dc470d 18060:b207affc0618
2829 valid_cp_range(bootstrap_method_index, cp_size) && 2829 valid_cp_range(bootstrap_method_index, cp_size) &&
2830 _cp->tag_at(bootstrap_method_index).is_method_handle(), 2830 _cp->tag_at(bootstrap_method_index).is_method_handle(),
2831 "bootstrap_method_index %u has bad constant type in class file %s", 2831 "bootstrap_method_index %u has bad constant type in class file %s",
2832 bootstrap_method_index, 2832 bootstrap_method_index,
2833 CHECK); 2833 CHECK);
2834
2835 guarantee_property((operand_fill_index + 1 + argument_count) < operands->length(),
2836 "Invalid BootstrapMethods num_bootstrap_methods or num_bootstrap_arguments value in class file %s",
2837 CHECK);
2838
2834 operands->at_put(operand_fill_index++, bootstrap_method_index); 2839 operands->at_put(operand_fill_index++, bootstrap_method_index);
2835 operands->at_put(operand_fill_index++, argument_count); 2840 operands->at_put(operand_fill_index++, argument_count);
2836 2841
2837 cfs->guarantee_more(sizeof(u2) * argument_count, CHECK); // argv[argc] 2842 cfs->guarantee_more(sizeof(u2) * argument_count, CHECK); // argv[argc]
2838 for (int j = 0; j < argument_count; j++) { 2843 for (int j = 0; j < argument_count; j++) {
2846 operands->at_put(operand_fill_index++, argument_index); 2851 operands->at_put(operand_fill_index++, argument_index);
2847 } 2852 }
2848 } 2853 }
2849 2854
2850 assert(operand_fill_index == operands->length(), "exact fill"); 2855 assert(operand_fill_index == operands->length(), "exact fill");
2851 assert(ConstantPool::operand_array_length(operands) == attribute_array_length, "correct decode");
2852 2856
2853 u1* current_end = cfs->current(); 2857 u1* current_end = cfs->current();
2854 guarantee_property(current_end == current_start + attribute_byte_length, 2858 guarantee_property(current_end == current_start + attribute_byte_length,
2855 "Bad length on BootstrapMethods in class file %s", 2859 "Bad length on BootstrapMethods in class file %s",
2856 CHECK); 2860 CHECK);