< prev index next >

src/hotspot/share/memory/oopFactory.hpp

Print this page
*** 1,7 ***
  /*
!  * Copyright (c) 1997, 2020, 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.
--- 1,7 ---
  /*
!  * 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.

*** 24,10 ***
--- 24,11 ---
  
  #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.

*** 53,10 ***
--- 54,20 ---
    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 >