< prev index next > src/hotspot/share/classfile/systemDictionaryShared.hpp
Print this page
#include "classfile/classLoaderData.hpp"
#include "classfile/packageEntry.hpp"
#include "classfile/systemDictionary.hpp"
#include "oops/klass.hpp"
#include "oops/oopHandle.hpp"
+ #include "oops/trainingData.hpp"
/*===============================================================================
Handling of the classes in the AppCDS archive
class ExclusionCheckCandidates;
static DumpTimeSharedClassTable* _dumptime_table;
static ArchiveInfo _static_archive;
static ArchiveInfo _dynamic_archive;
+ static bool _finished_exclusion_checks;
static ArchiveInfo* get_archive(bool is_static_archive) {
return is_static_archive ? &_static_archive : &_dynamic_archive;
}
Handle class_loader,
Handle protection_domain,
const ClassFileStream* cfs,
TRAPS);
- // Guaranteed to return non-null value for non-shared classes.
- // k must not be a shared class.
- static DumpTimeClassInfo* get_info(InstanceKlass* k);
- static DumpTimeClassInfo* get_info_locked(InstanceKlass* k);
static void write_dictionary(RunTimeSharedDictionary* dictionary,
bool is_builtin);
- static bool is_jfr_event_class(InstanceKlass *k);
static bool should_be_excluded_impl(InstanceKlass* k, DumpTimeClassInfo* info);
// exclusion checks
static void check_exclusion_for_self_and_dependencies(InstanceKlass *k);
static bool check_self_exclusion(InstanceKlass* k);
static bool is_dependency_excluded(InstanceKlass* k, InstanceKlass* dependency, const char* type);
static bool is_excluded_verification_constraint(InstanceKlass* k, Symbol* constraint_class_name);
static Klass* find_verification_constraint_bottom_class(InstanceKlass* k, Symbol* constraint_class_name);
static void remove_dumptime_info(InstanceKlass* k) NOT_CDS_RETURN;
- static bool has_been_redefined(InstanceKlass* k);
DEBUG_ONLY(static bool _class_loading_may_happen;)
static void copy_verification_info_from_preimage(InstanceKlass* klass);
static void copy_linking_constraints_from_preimage(InstanceKlass* klass);
template<typename Function>
static void iterate_verification_constraint_names(InstanceKlass* k, DumpTimeClassInfo* info, Function func);
public:
static bool is_early_klass(InstanceKlass* k); // Was k loaded while JvmtiExport::is_early_phase()==true
static bool has_archived_enum_objs(InstanceKlass* ik);
static void set_has_archived_enum_objs(InstanceKlass* ik);
static InstanceKlass* find_builtin_class(Symbol* class_name);
static bool is_dependency_excluded(InstanceKlass* k, InstanceKlass* dependency, const char* type);
static bool is_excluded_verification_constraint(InstanceKlass* k, Symbol* constraint_class_name);
static Klass* find_verification_constraint_bottom_class(InstanceKlass* k, Symbol* constraint_class_name);
static void remove_dumptime_info(InstanceKlass* k) NOT_CDS_RETURN;
DEBUG_ONLY(static bool _class_loading_may_happen;)
static void copy_verification_info_from_preimage(InstanceKlass* klass);
static void copy_linking_constraints_from_preimage(InstanceKlass* klass);
template<typename Function>
static void iterate_verification_constraint_names(InstanceKlass* k, DumpTimeClassInfo* info, Function func);
public:
+ // Guaranteed to return non-null value for non-shared classes.
+ // k must not be a shared class.
+ static DumpTimeClassInfo* get_info(InstanceKlass* k);
+ static DumpTimeClassInfo* get_info_locked(InstanceKlass* k);
+ static DumpTimeSharedClassTable* dumptime_table() { return _dumptime_table; }
+
+ static bool should_hidden_class_be_archived(InstanceKlass* k);
+ static void mark_required_hidden_class(InstanceKlass* k);
+ static bool has_been_redefined(InstanceKlass* k);
+ static bool is_jfr_event_class(InstanceKlass *k);
static bool is_early_klass(InstanceKlass* k); // Was k loaded while JvmtiExport::is_early_phase()==true
static bool has_archived_enum_objs(InstanceKlass* ik);
static void set_has_archived_enum_objs(InstanceKlass* ik);
static InstanceKlass* find_builtin_class(Symbol* class_name);
static void initialize() NOT_CDS_RETURN;
static void init_dumptime_info(InstanceKlass* k) NOT_CDS_RETURN;
static void init_dumptime_info_from_preimage(InstanceKlass* k) NOT_CDS_RETURN;
static void handle_class_unloading(InstanceKlass* k) NOT_CDS_RETURN;
+ static bool can_be_preinited(InstanceKlass* ik);
+ static bool can_be_preinited_locked(InstanceKlass* ik);
+ static void reset_preinit_check();
+
static Dictionary* boot_loader_dictionary() {
return ClassLoaderData::the_null_class_loader_data()->dictionary();
}
static void update_shared_entry(InstanceKlass* klass, int id);
static bool add_unregistered_class(Thread* current, InstanceKlass* k);
static InstanceKlass* get_unregistered_class(Symbol* name);
static void copy_unregistered_class_size_and_crc32(InstanceKlass* klass);
static void finish_exclusion_checks();
- static DumpTimeSharedClassTable* dumptime_table() { return _dumptime_table; }
static bool should_be_excluded(Klass* k);
static void validate_before_archiving(InstanceKlass* k);
static bool is_excluded_class(InstanceKlass* k);
static void set_excluded(InstanceKlass* k);
uintx offset = uintx(ptr) - uintx(SharedBaseAddress);
return primitive_hash<uintx>(offset);
}
static unsigned int hash_for_shared_dictionary(address ptr);
+ static void create_loader_positive_lookup_cache(TRAPS);
};
#endif // SHARE_CLASSFILE_SYSTEMDICTIONARYSHARED_HPP
< prev index next >