Инициализация CodeCache.Параметры mtCode передаются новому, но mtInternal используется в конструкторе GrowableArray. - PullRequest
0 голосов
/ 27 июня 2019

У меня некоторая путаница по поводу 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. Какой смысл это делать?

...