diff src/share/vm/memory/oopFactory.hpp @ 3602:da91efe96a93

6964458: Reimplement class meta-data storage to use native memory Summary: Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland Contributed-by: jmasa <jon.masamitsu@oracle.com>, stefank <stefan.karlsson@oracle.com>, mgerdin <mikael.gerdin@oracle.com>, never <tom.rodriguez@oracle.com>
author coleenp
date Sat, 01 Sep 2012 13:25:18 -0400
parents 8150fa46d2ed
children d8ce2825b193
line wrap: on
line diff
--- a/src/share/vm/memory/oopFactory.hpp	Fri Aug 31 16:39:35 2012 -0700
+++ b/src/share/vm/memory/oopFactory.hpp	Sat Sep 01 13:25:18 2012 -0400
@@ -28,7 +28,6 @@
 #include "classfile/symbolTable.hpp"
 #include "classfile/systemDictionary.hpp"
 #include "memory/universe.hpp"
-#include "oops/klassOop.hpp"
 #include "oops/objArrayKlass.hpp"
 #include "oops/oop.hpp"
 #include "oops/typeArrayKlass.hpp"
@@ -52,68 +51,20 @@
 
   // create java.lang.Object[]
   static objArrayOop     new_objectArray(int length, TRAPS)  {
+    assert(Universe::objectArrayKlassObj() != NULL, "Too early?");
     return objArrayKlass::
       cast(Universe::objectArrayKlassObj())->allocate(length, CHECK_NULL);
   }
 
   static typeArrayOop    new_charArray           (const char* utf8_str,  TRAPS);
-  static typeArrayOop    new_permanent_charArray (int length, TRAPS);
-  static typeArrayOop    new_permanent_byteArray (int length, TRAPS);  // used for class file structures
-  static typeArrayOop    new_permanent_shortArray(int length, TRAPS);  // used for class file structures
-  static typeArrayOop    new_permanent_intArray  (int length, TRAPS);  // used for class file structures
+  static typeArrayOop    new_tenured_charArray(int length, TRAPS);
 
   static typeArrayOop    new_typeArray(BasicType type, int length, TRAPS);
   static typeArrayOop    new_typeArray_nozero(BasicType type, int length, TRAPS);
-
-  // Constant pools
-  static constantPoolOop      new_constantPool     (int length,
-                                                    bool is_conc_safe,
-                                                    TRAPS);
-  static constantPoolCacheOop new_constantPoolCache(int length,
-                                                    TRAPS);
-
-  // Instance classes
-  static klassOop        new_instanceKlass(Symbol* name,
-                                           int vtable_len, int itable_len,
-                                           int static_field_size,
-                                           unsigned int nonstatic_oop_map_count,
-                                           AccessFlags access_flags,
-                                           ReferenceType rt,
-                                           KlassHandle host_klass, TRAPS);
-
-  // Methods
-private:
-  static constMethodOop  new_constMethod(int byte_code_size,
-                                         int compressed_line_number_size,
-                                         int localvariable_table_length,
-                                         int exception_table_length,
-                                         int checked_exceptions_length,
-                                         bool is_conc_safe,
-                                         TRAPS);
-public:
-  // Set is_conc_safe for methods which cannot safely be
-  // processed by concurrent GC even after the return of
-  // the method.
-  static methodOop       new_method(int byte_code_size,
-                                    AccessFlags access_flags,
-                                    int compressed_line_number_size,
-                                    int localvariable_table_length,
-                                    int exception_table_length,
-                                    int checked_exceptions_length,
-                                    bool is_conc_safe,
-                                    TRAPS);
-
-  // Method Data containers
-  static methodDataOop   new_methodData(methodHandle method, TRAPS);
-
-  // System object arrays
-  static objArrayOop     new_system_objArray(int length, TRAPS);
+  static typeArrayOop    new_metaDataArray(int length, TRAPS);
 
   // Regular object arrays
-  static objArrayOop     new_objArray(klassOop klass, int length, TRAPS);
-
-  // For compiled ICs
-  static compiledICHolderOop new_compiledICHolder(methodHandle method, KlassHandle klass, TRAPS);
+  static objArrayOop     new_objArray(Klass* klass, int length, TRAPS);
 };
 
 #endif // SHARE_VM_MEMORY_OOPFACTORY_HPP