< prev index next > src/hotspot/share/classfile/javaClasses.cpp
Print this page
void java_lang_Class::set_class_data(oop java_class, oop class_data) {
assert(_classData_offset != 0, "must be set");
java_class->obj_field_put(_classData_offset, class_data);
}
+ oop java_lang_Class::reflection_data(oop java_class) {
+ assert(_reflectionData_offset != 0, "must be set");
+ return java_class->obj_field(_reflectionData_offset);
+ }
+
+ bool java_lang_Class::has_reflection_data(oop java_class) {
+ return (java_lang_Class::reflection_data(java_class) != nullptr);
+ }
+
void java_lang_Class::set_reflection_data(oop java_class, oop reflection_data) {
assert(_reflectionData_offset != 0, "must be set");
java_class->obj_field_put(_reflectionData_offset, reflection_data);
}
macro(_class_loader_offset, k, "classLoader", classloader_signature, false); \
macro(_component_mirror_offset, k, "componentType", class_signature, false); \
macro(_module_offset, k, "module", module_signature, false); \
macro(_name_offset, k, "name", string_signature, false); \
macro(_classData_offset, k, "classData", object_signature, false); \
! macro(_reflectionData_offset, k, "reflectionData", java_lang_ref_SoftReference_signature, false); \
macro(_signers_offset, k, "signers", object_array_signature, false); \
macro(_modifiers_offset, k, vmSymbols::modifiers_name(), char_signature, false); \
macro(_raw_access_flags_offset, k, "classFileAccessFlags", char_signature, false); \
macro(_protection_domain_offset, k, "protectionDomain", java_security_ProtectionDomain_signature, false); \
macro(_is_primitive_offset, k, "primitive", bool_signature, false);
macro(_class_loader_offset, k, "classLoader", classloader_signature, false); \
macro(_component_mirror_offset, k, "componentType", class_signature, false); \
macro(_module_offset, k, "module", module_signature, false); \
macro(_name_offset, k, "name", string_signature, false); \
macro(_classData_offset, k, "classData", object_signature, false); \
! macro(_reflectionData_offset, k, "reflectionData", class_ReflectionData_signature, false); \
macro(_signers_offset, k, "signers", object_array_signature, false); \
macro(_modifiers_offset, k, vmSymbols::modifiers_name(), char_signature, false); \
macro(_raw_access_flags_offset, k, "classFileAccessFlags", char_signature, false); \
macro(_protection_domain_offset, k, "protectionDomain", java_security_ProtectionDomain_signature, false); \
macro(_is_primitive_offset, k, "primitive", bool_signature, false);
void java_lang_Throwable::clear_stacktrace(oop throwable) {
set_stacktrace(throwable, nullptr);
}
+ oop java_lang_Throwable::create_exception_instance(Symbol* class_name, TRAPS) {
+ Klass* k = SystemDictionary::resolve_or_fail(class_name, true, CHECK_NULL);
+ return InstanceKlass::cast(k)->allocate_instance(CHECK_NULL);
+ }
void java_lang_Throwable::print(oop throwable, outputStream* st) {
ResourceMark rm;
Klass* k = throwable->klass();
assert(k != nullptr, "just checking");
< prev index next >