hotspot/src/share/vm/runtime/virtualspace.cpp
ReservedHeapSpace::ReservedHeapSpace(const size_t prefix_size,
const size_t prefix_align,
const size_t suffix_size,
const size_t suffix_align,
char* requested_address) :
{- -------------------------------------------
(1) ReservedSpace のコンストラクタを呼び出す
---------------------------------------- -}
ReservedSpace(prefix_size, prefix_align, suffix_size, suffix_align,
requested_address,
(UseCompressedOops && (Universe::narrow_oop_base() != NULL) &&
Universe::narrow_oop_use_implicit_null_checks()) ?
lcm(os::vm_page_size(), prefix_align) : 0) {
{- -------------------------------------------
(1) protect_noaccess_prefix() を呼び出す.
(protect_noaccess_prefix() 内の処理により,
もし Compressed Oop オプションが有効で (UseCompressedOops),
かつヒープの開始アドレスが 0 でなく (= Universe::narrow_oop_base() != NULL) ,
さらに null check を暗黙的に行うことになっていれば (= Universe::narrow_oop_use_implicit_null_checks() が true),
確保したヒープの先頭ページがアクセス禁止にされる.
これにより Null Pointer アクセスがシグナルハンドラで検出できるようになる.
See: protect_noaccess_prefix())
---------------------------------------- -}
protect_noaccess_prefix(prefix_size+suffix_size);
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.