Mercurial > hg > truffle
diff src/share/vm/memory/oopFactory.hpp @ 6725: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