hotspot/src/share/vm/prims/jvmtiRedefineClasses.cpp
bool VM_RedefineClasses::is_modifiable_class(oop klass_mirror) {
{- -------------------------------------------
(1) klass_mirror 引数で指定されたオブジェクトが
以下のどれかに当てはまれば false をリターンする.
当てはまらなければ true をリターンする.
* プリミティブ型のクラスオブジェクトである (= java_lang_Class::is_primitive() が true)
* クラスオブジェクトではない (= java_lang_Class::as_klassOop() が NULL)
* 配列クラス用のクラスオブジェクトである (= oop_is_instance() が false)
---------------------------------------- -}
// classes for primitives cannot be redefined
if (java_lang_Class::is_primitive(klass_mirror)) {
return false;
}
klassOop the_class_oop = java_lang_Class::as_klassOop(klass_mirror);
// classes for arrays cannot be redefined
if (the_class_oop == NULL || !Klass::cast(the_class_oop)->oop_is_instance()) {
return false;
}
return true;
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.