355 u_char* compressed_linenumber_table() const; // not preserved by gc 356 u2* generic_signature_index_addr() const; 357 u2* checked_exceptions_length_addr() const; 358 u2* localvariable_table_length_addr() const; 359 u2* exception_table_length_addr() const; 360 u2* method_parameters_length_addr() const; 361 362 // checked exceptions 363 int checked_exceptions_length() const; 364 CheckedExceptionElement* checked_exceptions_start() const; 365 366 // localvariable table 367 int localvariable_table_length() const; 368 LocalVariableTableElement* localvariable_table_start() const; 369 370 // exception table 371 int exception_table_length() const; 372 ExceptionTableElement* exception_table_start() const; 373 374 // method parameters table 375 int method_parameters_length() const; 376 MethodParametersElement* method_parameters_start() const; 377 378 // method annotations 379 bool has_method_annotations() const 380 { return (_flags & _has_method_annotations) != 0; } 381 382 bool has_parameter_annotations() const 383 { return (_flags & _has_parameter_annotations) != 0; } 384 385 bool has_type_annotations() const 386 { return (_flags & _has_type_annotations) != 0; } 387 388 bool has_default_annotations() const 389 { return (_flags & _has_default_annotations) != 0; } 390 391 392 AnnotationArray** method_annotations_addr() const; 393 AnnotationArray* method_annotations() const { 394 return has_method_annotations() ? *(method_annotations_addr()) : NULL; | 355 u_char* compressed_linenumber_table() const; // not preserved by gc 356 u2* generic_signature_index_addr() const; 357 u2* checked_exceptions_length_addr() const; 358 u2* localvariable_table_length_addr() const; 359 u2* exception_table_length_addr() const; 360 u2* method_parameters_length_addr() const; 361 362 // checked exceptions 363 int checked_exceptions_length() const; 364 CheckedExceptionElement* checked_exceptions_start() const; 365 366 // localvariable table 367 int localvariable_table_length() const; 368 LocalVariableTableElement* localvariable_table_start() const; 369 370 // exception table 371 int exception_table_length() const; 372 ExceptionTableElement* exception_table_start() const; 373 374 // method parameters table 375 376 // This returns -1 if no parameters are present, a non-negative 377 // value otherwise. Note: sometimes, there are 0-length parameters 378 // attributes that must be reported up to the reflection API all the 379 // same. 380 int method_parameters_length() const; 381 MethodParametersElement* method_parameters_start() const; 382 383 // method annotations 384 bool has_method_annotations() const 385 { return (_flags & _has_method_annotations) != 0; } 386 387 bool has_parameter_annotations() const 388 { return (_flags & _has_parameter_annotations) != 0; } 389 390 bool has_type_annotations() const 391 { return (_flags & _has_type_annotations) != 0; } 392 393 bool has_default_annotations() const 394 { return (_flags & _has_default_annotations) != 0; } 395 396 397 AnnotationArray** method_annotations_addr() const; 398 AnnotationArray* method_annotations() const { 399 return has_method_annotations() ? *(method_annotations_addr()) : NULL; |