< prev index next >

src/hotspot/share/classfile/classFileParser.hpp

Print this page
rev 58565 : 8238358: Implementation of JEP 371: Hidden Classes
Reviewed-by: duke
Contributed-by: mandy.chung@oracle.com, lois.foltan@oracle.com, david.holmes@oracle.com, harold.seigel@oracle.com, serguei.spitsyn@oracle.com, alex.buckley@oracle.com, jamsheed.c.m@oracle.com

*** 35,44 **** --- 35,46 ---- class Annotations; template <typename T> class Array; class ClassFileStream; class ClassLoaderData; + class ClassLoadInfo; + class ClassInstanceInfo; class CompressedLineNumberWriteStream; class ConstMethod; class FieldInfo; template <typename T> class GrowableArray;
*** 107,121 **** private: // Potentially unaligned pointer to various 16-bit entries in the class file typedef void unsafe_u2; const ClassFileStream* _stream; // Actual input stream - const Symbol* _requested_name; Symbol* _class_name; mutable ClassLoaderData* _loader_data; const InstanceKlass* _unsafe_anonymous_host; GrowableArray<Handle>* _cp_patches; // overrides for CP entries int _num_patched_klasses; int _max_num_patched_klasses; int _orig_cp_size; int _first_patched_klass_resolved_index; --- 109,124 ---- private: // Potentially unaligned pointer to various 16-bit entries in the class file typedef void unsafe_u2; const ClassFileStream* _stream; // Actual input stream Symbol* _class_name; mutable ClassLoaderData* _loader_data; const InstanceKlass* _unsafe_anonymous_host; GrowableArray<Handle>* _cp_patches; // overrides for CP entries + const bool _is_hidden; + const bool _can_access_vm_annotations; int _num_patched_klasses; int _max_num_patched_klasses; int _orig_cp_size; int _first_patched_klass_resolved_index;
*** 199,216 **** bool _has_vanilla_constructor; int _max_bootstrap_specifier_index; // detects BSS values void parse_stream(const ClassFileStream* const stream, TRAPS); void post_process_parsed_stream(const ClassFileStream* const stream, ConstantPool* cp, TRAPS); void prepend_host_package_name(const InstanceKlass* unsafe_anonymous_host, TRAPS); void fix_unsafe_anonymous_class_name(TRAPS); ! void fill_instance_klass(InstanceKlass* ik, bool cf_changed_in_CFLH, TRAPS); void set_klass(InstanceKlass* instance); void set_class_bad_constant_seen(short bad_constant); short class_bad_constant_seen() { return _bad_constant_seen; } void set_class_synthetic_flag(bool x) { _synthetic_flag = x; } --- 202,223 ---- bool _has_vanilla_constructor; int _max_bootstrap_specifier_index; // detects BSS values void parse_stream(const ClassFileStream* const stream, TRAPS); + void mangle_hidden_class_name(InstanceKlass* const ik); + void post_process_parsed_stream(const ClassFileStream* const stream, ConstantPool* cp, TRAPS); void prepend_host_package_name(const InstanceKlass* unsafe_anonymous_host, TRAPS); void fix_unsafe_anonymous_class_name(TRAPS); ! void fill_instance_klass(InstanceKlass* ik, bool cf_changed_in_CFLH, ! const ClassInstanceInfo& cl_inst_info, TRAPS); ! void set_klass(InstanceKlass* instance); void set_class_bad_constant_seen(short bad_constant); short class_bad_constant_seen() { return _bad_constant_seen; } void set_class_synthetic_flag(bool x) { _synthetic_flag = x; }
*** 531,549 **** public: ClassFileParser(ClassFileStream* stream, Symbol* name, ClassLoaderData* loader_data, ! Handle protection_domain, ! const InstanceKlass* unsafe_anonymous_host, ! GrowableArray<Handle>* cp_patches, Publicity pub_level, TRAPS); ~ClassFileParser(); ! InstanceKlass* create_instance_klass(bool cf_changed_in_CFLH, TRAPS); const ClassFileStream* clone_stream() const; void set_klass_to_deallocate(InstanceKlass* klass); --- 538,554 ---- public: ClassFileParser(ClassFileStream* stream, Symbol* name, ClassLoaderData* loader_data, ! const ClassLoadInfo* cl_info, Publicity pub_level, TRAPS); ~ClassFileParser(); ! InstanceKlass* create_instance_klass(bool cf_changed_in_CFLH, const ClassInstanceInfo& cl_inst_info, TRAPS); const ClassFileStream* clone_stream() const; void set_klass_to_deallocate(InstanceKlass* klass);
*** 555,564 **** --- 560,570 ---- int itable_size() const { return _itable_size; } u2 this_class_index() const { return _this_class_index; } bool is_unsafe_anonymous() const { return _unsafe_anonymous_host != NULL; } + bool is_hidden() const { return _is_hidden; } bool is_interface() const { return _access_flags.is_interface(); } const InstanceKlass* unsafe_anonymous_host() const { return _unsafe_anonymous_host; } const GrowableArray<Handle>* cp_patches() const { return _cp_patches; } ClassLoaderData* loader_data() const { return _loader_data; }
< prev index next >