hotspot/src/share/vm/oops/klass.cpp
changeset 35544 c7ec868d0923
parent 34666 1c7168ea0034
child 35913 928548a43408
--- a/hotspot/src/share/vm/oops/klass.cpp	Fri Dec 18 20:23:27 2015 +0300
+++ b/hotspot/src/share/vm/oops/klass.cpp	Fri Dec 18 20:23:28 2015 +0300
@@ -44,6 +44,20 @@
 #include "gc/g1/g1SATBCardTableModRefBS.hpp"
 #endif // INCLUDE_ALL_GCS
 
+bool Klass::is_cloneable() const {
+  return _access_flags.is_cloneable_fast() ||
+         is_subtype_of(SystemDictionary::Cloneable_klass());
+}
+
+void Klass::set_is_cloneable() {
+  if (name() != vmSymbols::java_lang_invoke_MemberName()) {
+    _access_flags.set_is_cloneable_fast();
+  } else {
+    assert(is_final(), "no subclasses allowed");
+    // MemberName cloning should not be intrinsified and always happen in JVM_Clone.
+  }
+}
+
 void Klass::set_name(Symbol* n) {
   _name = n;
   if (_name != NULL) _name->increment_refcount();