hotspot/src/share/vm/ci/ciObjectFactory.hpp
changeset 8076 96d498ec7ae1
parent 7397 5b173b4ca846
child 8921 14bfe81f2a9d
equal deleted inserted replaced
8075:582dd25571b2 8076:96d498ec7ae1
    46   GrowableArray<ciObject*>* _ci_objects;
    46   GrowableArray<ciObject*>* _ci_objects;
    47   GrowableArray<ciMethod*>* _unloaded_methods;
    47   GrowableArray<ciMethod*>* _unloaded_methods;
    48   GrowableArray<ciKlass*>* _unloaded_klasses;
    48   GrowableArray<ciKlass*>* _unloaded_klasses;
    49   GrowableArray<ciInstance*>* _unloaded_instances;
    49   GrowableArray<ciInstance*>* _unloaded_instances;
    50   GrowableArray<ciReturnAddress*>* _return_addresses;
    50   GrowableArray<ciReturnAddress*>* _return_addresses;
       
    51   GrowableArray<ciSymbol*>* _symbols;  // keep list of symbols created
    51   int                       _next_ident;
    52   int                       _next_ident;
    52 
    53 
    53 public:
    54 public:
    54   struct NonPermObject : public ResourceObj {
    55   struct NonPermObject : public ResourceObj {
    55     ciObject*      _object;
    56     ciObject*      _object;
    74 
    75 
    75   NonPermObject* &find_non_perm(oop key);
    76   NonPermObject* &find_non_perm(oop key);
    76   void insert_non_perm(NonPermObject* &where, oop key, ciObject* obj);
    77   void insert_non_perm(NonPermObject* &where, oop key, ciObject* obj);
    77 
    78 
    78   void init_ident_of(ciObject* obj);
    79   void init_ident_of(ciObject* obj);
       
    80   void init_ident_of(ciSymbol* obj);
    79 
    81 
    80   Arena* arena() { return _arena; }
    82   Arena* arena() { return _arena; }
    81 
    83 
    82   void print_contents_impl();
    84   void print_contents_impl();
    83 
    85 
    86 public:
    88 public:
    87   static bool is_initialized() { return _initialized; }
    89   static bool is_initialized() { return _initialized; }
    88 
    90 
    89   static void initialize();
    91   static void initialize();
    90   void init_shared_objects();
    92   void init_shared_objects();
       
    93   void remove_symbols();
    91 
    94 
    92   ciObjectFactory(Arena* arena, int expected_size);
    95   ciObjectFactory(Arena* arena, int expected_size);
    93 
    96 
    94 
       
    95   // Get the ciObject corresponding to some oop.
    97   // Get the ciObject corresponding to some oop.
    96   ciObject* get(oop key);
    98   ciObject* get(oop key);
       
    99 
       
   100   ciSymbol* get_symbol(Symbol* key);
    97 
   101 
    98   // Get the ciSymbol corresponding to one of the vmSymbols.
   102   // Get the ciSymbol corresponding to one of the vmSymbols.
    99   static ciSymbol* vm_symbol_at(int index);
   103   static ciSymbol* vm_symbol_at(int index);
   100 
   104 
   101   // Get the ciMethod representing an unloaded/unfound method.
   105   // Get the ciMethod representing an unloaded/unfound method.