hotspot/src/share/vm/oops/instanceKlass.cpp
/* jni_id_for for jfieldIds only */
JNIid* instanceKlass::jni_id_for(int offset) {
{- -------------------------------------------
(1) JNIid::find() を呼んでみて,
offset 引数で指定された値に対応する JNIid オブジェクトが
既にこの instanceKlass の jni_ids フィールドに存在しないかどうか探してみる.
---------------------------------------- -}
JNIid* probe = jni_ids() == NULL ? NULL : jni_ids()->find(offset);
{- -------------------------------------------
(1) もしそういう JNIid オブジェクトが見つかれば, それをリターンするだけ.
存在しなければ, instanceKlass::jni_id_for_impl() で
対応する JNIid オブジェクト作成してリターンする.
---------------------------------------- -}
if (probe == NULL) {
probe = jni_id_for_impl(this->as_klassOop(), offset);
}
return probe;
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.