On Jul 11, 2012, at 5:25 PM, Vladimir Kozlov wrote: > > But I'll change it if you insist. > > Please, change. Also put final klass settings "Fill in field values from > parse_classfile_attributes" in a separate ClassFileParser method.
Done. Here is the updated webrev: http://cr.openjdk.java.net/~jrose/6711908/webrev.01 (See synopsis below.) — John @@ -62,6 +64,22 @@ typeArrayHandle _inner_classes; typeArrayHandle _annotations; + void set_class_synthetic_flag(bool x) { _synthetic_flag = x; } + void set_class_sourcefile(Symbol* x) { _sourcefile = x; } + void set_class_generic_signature(Symbol* x) { _generic_signature = x; } + void set_class_sde_symbol(Symbol* x) { _sde_symbol = x; } + void set_class_inner_classes(typeArrayHandle x) { _inner_classes = x; } + void set_class_annotations(typeArrayHandle x) { _annotations = x; } + void init_parsed_class_attributes() { + _synthetic_flag = false; + _sourcefile = NULL; + _generic_signature = NULL; + // initialize the other flags too: + _has_finalizer = _has_empty_finalizer = _has_vanilla_constructor = false; + _max_bootstrap_specifier_index = -1; + } + void apply_parsed_class_attributes(instanceKlassHandle k); // update k + class AnnotationCollector { public: enum Location { _in_field, _in_method, _in_class }; @@ -2866,6 +2863,21 @@ } } +void ClassFileParser::apply_parsed_class_attributes(instanceKlassHandle k) { + if (_synthetic_flag) + k->set_is_synthetic(); + if (_sourcefile != NULL) { + _sourcefile->increment_refcount(); + k->set_source_file_name(_sourcefile); + } + if (_generic_signature != NULL) { + _generic_signature->increment_refcount(); + k->set_generic_signature(_generic_signature); + } + k->set_source_debug_extension(_sde_symbol); // increment_refcount inside + k->set_inner_classes(_inner_classes()); + k->set_class_annotations(_annotations()); +} typeArrayHandle ClassFileParser::assemble_annotations(u1* runtime_visible_annotations, int runtime_visible_annotations_length,
_______________________________________________ mlvm-dev mailing list mlvm-dev@openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev