< prev index next > src/hotspot/share/memory/allocation.hpp
Print this page
f(MethodData) \
f(ConstantPool) \
f(ConstantPoolCache) \
f(Annotations) \
f(MethodCounters) \
- f(SharedClassPathEntry) \
- f(RecordComponent)
+ f(RecordComponent) \
+ f(KlassTrainingData) \
+ f(MethodTrainingData) \
+ f(CompileTrainingData) \
+ f(SharedClassPathEntry)
#define METASPACE_OBJ_TYPE_DECLARE(name) name ## Type,
#define METASPACE_OBJ_TYPE_NAME_CASE(name) case name ## Type: return #name;
enum Type {
ShouldNotReachHere();
return nullptr;
}
}
+ static bool is_training_data(Type type) {
+ return (type == Type::KlassTrainingDataType) ||
+ (type == Type::MethodTrainingDataType) ||
+ (type == Type::CompileTrainingDataType);
+ }
+
static MetaspaceObj::Type array_type(size_t elem_size) {
switch (elem_size) {
case 1: return TypeArrayU1Type;
case 2: return TypeArrayU2Type;
case 4: return TypeArrayU4Type;
Type type, JavaThread* thread) throw();
// can't use TRAPS from this header file.
void* operator new(size_t size, ClassLoaderData* loader_data,
size_t word_size,
Type type) throw();
+
+ // HACK -- this is used for allocating training data. See JDK-8331086
+ void* operator new(size_t size, MemTag flags) throw();
void operator delete(void* p) { ShouldNotCallThis(); }
// Declare a *static* method with the same signature in any subclass of MetaspaceObj
// that should be read-only by default. See symbol.hpp for an example. This function
// is used by the templates in metaspaceClosure.hpp
< prev index next >