< prev index next >
src/hotspot/share/oops/klass.hpp
Print this page
rev 59477 : [mq]: cds_lambda
@@ -174,11 +174,12 @@
#if INCLUDE_CDS
// Flags of the current shared class.
u2 _shared_class_flags;
enum {
- _has_raw_archived_mirror = 1
+ _has_raw_archived_mirror = 1,
+ _archived_lambda_proxy_is_available = 2
};
#endif
// The _archived_mirror is set at CDS dump time pointing to the cached mirror
// in the open archive heap region when archiving java object is supported.
@@ -291,10 +292,11 @@
InstanceKlass* superklass() const;
void append_to_sibling_list(); // add newly created receiver to superklass' subklass list
void set_next_link(Klass* k) { _next_link = k; }
Klass* next_link() const { return _next_link; } // The next klass defined by the class loader.
+ Klass** next_link_addr() { return &_next_link; }
// class loader data
ClassLoaderData* class_loader_data() const { return _class_loader_data; }
void set_class_loader_data(ClassLoaderData* loader_data) { _class_loader_data = loader_data; }
@@ -315,10 +317,21 @@
bool has_raw_archived_mirror() const {
CDS_ONLY(return (_shared_class_flags & _has_raw_archived_mirror) != 0;)
NOT_CDS(return false;)
}
+ void set_lambda_proxy_is_available() {
+ CDS_ONLY(_shared_class_flags |= _archived_lambda_proxy_is_available;)
+ }
+ void clear_lambda_proxy_is_available() {
+ CDS_ONLY(_shared_class_flags &= ~_archived_lambda_proxy_is_available;)
+ }
+ bool lambda_proxy_is_available() const {
+ CDS_ONLY(return (_shared_class_flags & _archived_lambda_proxy_is_available) != 0;)
+ NOT_CDS(return false;)
+ }
+
// Obtain the module or package for this class
virtual ModuleEntry* module() const = 0;
virtual PackageEntry* package() const = 0;
protected: // internal accessors
< prev index next >