< prev index next > src/hotspot/share/memory/oopFactory.hpp
Print this page
/*
- * Copyright (c) 1997, 2020, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2025, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
#ifndef SHARE_MEMORY_OOPFACTORY_HPP
#define SHARE_MEMORY_OOPFACTORY_HPP
#include "memory/referenceType.hpp"
+ #include "oops/arrayKlass.hpp"
#include "oops/oopsHierarchy.hpp"
#include "runtime/handles.hpp"
#include "utilities/exceptions.hpp"
// oopFactory is a class used for creating new objects.
static typeArrayOop new_typeArray_nozero(BasicType type, int length, TRAPS);
static typeArrayOop new_symbolArray(int length, TRAPS);
// Regular object arrays
static objArrayOop new_objArray(Klass* klass, int length, TRAPS);
+ static objArrayOop new_objArray(Klass* klass, int length, ArrayKlass::ArrayProperties properties, TRAPS);
+
+ // Value arrays...
+ // LWorld:
+ // - Q-type signature allocation should use this path.
+ // - L-type signature allocation should use new_objArray
+ //
+ // Method specifically null free and possibly flat if possible
+ // i.e. flatArrayOop if flattening can be done, else "null free" objArrayOop
+ static flatArrayOop new_flatArray(Klass* klass, int length, ArrayKlass::ArrayProperties props, LayoutKind lk, TRAPS);
// Helper that returns a Handle
static objArrayHandle new_objArray_handle(Klass* klass, int length, TRAPS);
};
< prev index next >