У меня некоторая путаница по поводу CodeCache::_heaps
инициализации. Параметр типа памяти, передаваемый в новую функцию выделения, равен mtCode
, как видно здесь :
GrowableArray<CodeHeap*>* CodeCache::_heaps =
new(ResourceObj::C_HEAP, mtCode) GrowableArray<CodeHeap*> (CodeBlobType::All, true);
В то время как конструктор GrowableArray
использует mtInternal
в качестве аргумента типа памяти по умолчанию здесь .
GrowableArray(int initial_size, bool C_heap = false, MEMFLAGS F = mtInternal)
: GenericGrowableArray(initial_size, 0, C_heap, F)
Меня смущает то, почему мы выделяем C_HEAP
памяти с new
, используя mtCode
MEMFLAG,
, но конструктору GrowableArray
по умолчанию присваивается mtInternal
MEMFLAG
. Какой смысл это делать?