< prev index next >

src/share/vm/classfile/placeholders.hpp

Print this page




  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #ifndef SHARE_VM_CLASSFILE_PLACEHOLDERS_HPP
  26 #define SHARE_VM_CLASSFILE_PLACEHOLDERS_HPP
  27 
  28 #include "runtime/thread.hpp"
  29 #include "utilities/hashtable.hpp"
  30 
  31 class PlaceholderEntry;
  32 
  33 // Placeholder objects. These represent classes currently
  34 // being loaded, as well as arrays of primitives.
  35 //
  36 
  37 class PlaceholderTable : public TwoOopHashtable<Symbol*, mtClass> {
  38   friend class VMStructs;
  39 
  40 public:
  41   PlaceholderTable(int table_size);
  42 
  43   PlaceholderEntry* new_entry(int hash, Symbol* name, ClassLoaderData* loader_data, bool havesupername, Symbol* supername);
  44   void free_entry(PlaceholderEntry* entry);
  45 
  46   PlaceholderEntry* bucket(int i) {
  47     return (PlaceholderEntry*)Hashtable<Symbol*, mtClass>::bucket(i);
  48   }
  49 
  50   PlaceholderEntry** bucket_addr(int i) {
  51     return (PlaceholderEntry**)Hashtable<Symbol*, mtClass>::bucket_addr(i);
  52   }
  53 
  54   void add_entry(int index, PlaceholderEntry* new_entry) {
  55     Hashtable<Symbol*, mtClass>::add_entry(index, (HashtableEntry<Symbol*, mtClass>*)new_entry);
  56   }
  57 




  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #ifndef SHARE_VM_CLASSFILE_PLACEHOLDERS_HPP
  26 #define SHARE_VM_CLASSFILE_PLACEHOLDERS_HPP
  27 
  28 #include "runtime/thread.hpp"
  29 #include "utilities/hashtable.hpp"
  30 
  31 class PlaceholderEntry;
  32 
  33 // Placeholder objects. These represent classes currently
  34 // being loaded, as well as arrays of primitives.
  35 //
  36 
  37 class PlaceholderTable : public Hashtable<Symbol*, mtClass> {
  38   friend class VMStructs;
  39 
  40 public:
  41   PlaceholderTable(int table_size);
  42 
  43   PlaceholderEntry* new_entry(int hash, Symbol* name, ClassLoaderData* loader_data, bool havesupername, Symbol* supername);
  44   void free_entry(PlaceholderEntry* entry);
  45 
  46   PlaceholderEntry* bucket(int i) {
  47     return (PlaceholderEntry*)Hashtable<Symbol*, mtClass>::bucket(i);
  48   }
  49 
  50   PlaceholderEntry** bucket_addr(int i) {
  51     return (PlaceholderEntry**)Hashtable<Symbol*, mtClass>::bucket_addr(i);
  52   }
  53 
  54   void add_entry(int index, PlaceholderEntry* new_entry) {
  55     Hashtable<Symbol*, mtClass>::add_entry(index, (HashtableEntry<Symbol*, mtClass>*)new_entry);
  56   }
  57 


< prev index next >