Mercurial > hg > truffle
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); |