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;
|