--- a/hotspot/src/share/vm/classfile/classFileParser.hpp Wed Dec 19 10:35:08 2012 -0800
+++ b/hotspot/src/share/vm/classfile/classFileParser.hpp Thu Dec 20 10:22:19 2012 +0100
@@ -64,6 +64,7 @@
int _sde_length;
Array<u2>* _inner_classes;
AnnotationArray* _annotations;
+ AnnotationArray* _type_annotations;
void set_class_synthetic_flag(bool x) { _synthetic_flag = x; }
void set_class_sourcefile(Symbol* x) { _sourcefile = x; }
@@ -71,12 +72,14 @@
void set_class_sde_buffer(char* x, int len) { _sde_buffer = x; _sde_length = len; }
void set_class_inner_classes(Array<u2>* x) { _inner_classes = x; }
void set_class_annotations(AnnotationArray* x) { _annotations = x; }
+ void set_class_type_annotations(AnnotationArray* x) { _type_annotations = x; }
void init_parsed_class_attributes() {
_synthetic_flag = false;
_sourcefile = NULL;
_generic_signature = NULL;
_sde_buffer = NULL;
_sde_length = 0;
+ _annotations = _type_annotations = NULL;
// initialize the other flags too:
_has_finalizer = _has_empty_finalizer = _has_vanilla_constructor = false;
_max_bootstrap_specifier_index = -1;
@@ -163,6 +166,7 @@
bool* is_synthetic_addr,
u2* generic_signature_index_addr,
AnnotationArray** field_annotations,
+ AnnotationArray** field_type_annotations,
FieldAnnotationCollector* parsed_annotations,
TRAPS);
Array<u2>* parse_fields(ClassLoaderData* loader_data,
@@ -170,6 +174,7 @@
constantPoolHandle cp, bool is_interface,
FieldAllocationCount *fac,
Array<AnnotationArray*>** fields_annotations,
+ Array<AnnotationArray*>** fields_type_annotations,
u2* java_fields_count_ptr, TRAPS);
// Method parsing
@@ -180,6 +185,7 @@
AnnotationArray** method_annotations,
AnnotationArray** method_parameter_annotations,
AnnotationArray** method_default_annotations,
+ AnnotationArray** method_type_annotations,
TRAPS);
Array<Method*>* parse_methods(ClassLoaderData* loader_data,
constantPoolHandle cp,
@@ -189,6 +195,7 @@
Array<AnnotationArray*>** methods_annotations,
Array<AnnotationArray*>** methods_parameter_annotations,
Array<AnnotationArray*>** methods_default_annotations,
+ Array<AnnotationArray*>** methods_type_annotations,
bool* has_default_method,
TRAPS);
Array<int>* sort_methods(ClassLoaderData* loader_data,
@@ -196,6 +203,7 @@
Array<AnnotationArray*>* methods_annotations,
Array<AnnotationArray*>* methods_parameter_annotations,
Array<AnnotationArray*>* methods_default_annotations,
+ Array<AnnotationArray*>* methods_type_annotations,
TRAPS);
u2* parse_exception_table(ClassLoaderData* loader_data,
u4 code_length, u4 exception_table_length,