Mercurial > hg > graal-compiler
comparison src/share/vm/classfile/classFileParser.cpp @ 20527:8cb56c8cb30d
Merge
author | jiangli |
---|---|
date | Mon, 15 Sep 2014 16:39:00 -0400 |
parents | 6e0cb14ce59b ccfff14361ea |
children | f0bedf980c65 |
comparison
equal
deleted
inserted
replaced
20411:fe1f65b0a2d8 | 20527:8cb56c8cb30d |
---|---|
2828 valid_cp_range(bootstrap_method_index, cp_size) && | 2828 valid_cp_range(bootstrap_method_index, cp_size) && |
2829 _cp->tag_at(bootstrap_method_index).is_method_handle(), | 2829 _cp->tag_at(bootstrap_method_index).is_method_handle(), |
2830 "bootstrap_method_index %u has bad constant type in class file %s", | 2830 "bootstrap_method_index %u has bad constant type in class file %s", |
2831 bootstrap_method_index, | 2831 bootstrap_method_index, |
2832 CHECK); | 2832 CHECK); |
2833 | |
2834 guarantee_property((operand_fill_index + 1 + argument_count) < operands->length(), | |
2835 "Invalid BootstrapMethods num_bootstrap_methods or num_bootstrap_arguments value in class file %s", | |
2836 CHECK); | |
2837 | |
2833 operands->at_put(operand_fill_index++, bootstrap_method_index); | 2838 operands->at_put(operand_fill_index++, bootstrap_method_index); |
2834 operands->at_put(operand_fill_index++, argument_count); | 2839 operands->at_put(operand_fill_index++, argument_count); |
2835 | 2840 |
2836 cfs->guarantee_more(sizeof(u2) * argument_count, CHECK); // argv[argc] | 2841 cfs->guarantee_more(sizeof(u2) * argument_count, CHECK); // argv[argc] |
2837 for (int j = 0; j < argument_count; j++) { | 2842 for (int j = 0; j < argument_count; j++) { |
2845 operands->at_put(operand_fill_index++, argument_index); | 2850 operands->at_put(operand_fill_index++, argument_index); |
2846 } | 2851 } |
2847 } | 2852 } |
2848 | 2853 |
2849 assert(operand_fill_index == operands->length(), "exact fill"); | 2854 assert(operand_fill_index == operands->length(), "exact fill"); |
2850 assert(ConstantPool::operand_array_length(operands) == attribute_array_length, "correct decode"); | |
2851 | 2855 |
2852 u1* current_end = cfs->current(); | 2856 u1* current_end = cfs->current(); |
2853 guarantee_property(current_end == current_start + attribute_byte_length, | 2857 guarantee_property(current_end == current_start + attribute_byte_length, |
2854 "Bad length on BootstrapMethods in class file %s", | 2858 "Bad length on BootstrapMethods in class file %s", |
2855 CHECK); | 2859 CHECK); |