112 // Utility class describing elements in exception table 113 class ExceptionTableElement VALUE_OBJ_CLASS_SPEC { 114 public: 115 u2 start_pc; 116 u2 end_pc; 117 u2 handler_pc; 118 u2 catch_type_index; 119 }; 120 121 // Utility class describing elements in method parameters 122 class MethodParametersElement VALUE_OBJ_CLASS_SPEC { 123 public: 124 u2 name_cp_index; 125 u2 flags; 126 }; 127 128 // Utility class describing element in ValueFactory parameter mapping 129 class ValueFactoryParameterMappingElement VALUE_OBJ_CLASS_SPEC{ 130 public: 131 union data_t { 132 u4 field_index; 133 struct temp_t { 134 u2 arg_index; 135 u2 field_index; 136 } temp; 137 } data; 138 }; 139 140 class KlassSizeStats; 141 142 // Class to collect the sizes of ConstMethod inline tables 143 #define INLINE_TABLES_DO(do_element) \ 144 do_element(localvariable_table_length) \ 145 do_element(compressed_linenumber_size) \ 146 do_element(exception_table_length) \ 147 do_element(checked_exceptions_length) \ 148 do_element(method_parameters_length) \ 149 do_element(valuefactory_parameter_mapping_length) \ 150 do_element(generic_signature_index) \ 151 do_element(method_annotations_length) \ 152 do_element(parameter_annotations_length) \ 153 do_element(type_annotations_length) \ 154 do_element(default_annotations_length) 155 | 112 // Utility class describing elements in exception table 113 class ExceptionTableElement VALUE_OBJ_CLASS_SPEC { 114 public: 115 u2 start_pc; 116 u2 end_pc; 117 u2 handler_pc; 118 u2 catch_type_index; 119 }; 120 121 // Utility class describing elements in method parameters 122 class MethodParametersElement VALUE_OBJ_CLASS_SPEC { 123 public: 124 u2 name_cp_index; 125 u2 flags; 126 }; 127 128 // Utility class describing element in ValueFactory parameter mapping 129 class ValueFactoryParameterMappingElement VALUE_OBJ_CLASS_SPEC{ 130 public: 131 union data_t { 132 u4 field_index; // VM-internal field index as returned by fieldDescriptor::index() 133 struct temp_t { 134 u2 arg_index; // Index of argument in the attached factory method 135 u2 field_index; // Index in the class file's constant pool 136 } temp; 137 } data; 138 }; 139 140 class KlassSizeStats; 141 142 // Class to collect the sizes of ConstMethod inline tables 143 #define INLINE_TABLES_DO(do_element) \ 144 do_element(localvariable_table_length) \ 145 do_element(compressed_linenumber_size) \ 146 do_element(exception_table_length) \ 147 do_element(checked_exceptions_length) \ 148 do_element(method_parameters_length) \ 149 do_element(valuefactory_parameter_mapping_length) \ 150 do_element(generic_signature_index) \ 151 do_element(method_annotations_length) \ 152 do_element(parameter_annotations_length) \ 153 do_element(type_annotations_length) \ 154 do_element(default_annotations_length) 155 |