src/share/vm/ci/ciObjectFactory.hpp

Print this page




  58   struct NonPermObject : public ResourceObj {
  59     ciObject*      _object;
  60     NonPermObject* _next;
  61 
  62     inline NonPermObject(NonPermObject* &bucket, oop key, ciObject* object);
  63     ciObject*     object()  { return _object; }
  64     NonPermObject* &next()  { return _next; }
  65   };
  66 private:
  67   enum { NON_PERM_BUCKETS = 61 };
  68   NonPermObject* _non_perm_bucket[NON_PERM_BUCKETS];
  69   int _non_perm_count;
  70 
  71   int find(Metadata* key, GrowableArray<ciMetadata*>* objects);
  72   bool is_found_at(int index, Metadata* key, GrowableArray<ciMetadata*>* objects);
  73   void insert(int index, ciMetadata* obj, GrowableArray<ciMetadata*>* objects);
  74 
  75   ciObject* create_new_object(oop o);
  76   ciMetadata* create_new_object(Metadata* o);
  77 


  78   static bool is_equal(NonPermObject* p, oop key) {
  79     return p->object()->get_oop() == key;
  80   }
  81 
  82   NonPermObject* &find_non_perm(oop key);
  83   void insert_non_perm(NonPermObject* &where, oop key, ciObject* obj);
  84 
  85   void init_ident_of(ciBaseObject* obj);
  86 
  87   Arena* arena() { return _arena; }
  88 
  89   void print_contents_impl();
  90 
  91   ciInstance* get_unloaded_instance(ciInstanceKlass* klass);
  92 
  93 public:
  94   static bool is_initialized() { return _initialized; }
  95 
  96   static void initialize();
  97   void init_shared_objects();




  58   struct NonPermObject : public ResourceObj {
  59     ciObject*      _object;
  60     NonPermObject* _next;
  61 
  62     inline NonPermObject(NonPermObject* &bucket, oop key, ciObject* object);
  63     ciObject*     object()  { return _object; }
  64     NonPermObject* &next()  { return _next; }
  65   };
  66 private:
  67   enum { NON_PERM_BUCKETS = 61 };
  68   NonPermObject* _non_perm_bucket[NON_PERM_BUCKETS];
  69   int _non_perm_count;
  70 
  71   int find(Metadata* key, GrowableArray<ciMetadata*>* objects);
  72   bool is_found_at(int index, Metadata* key, GrowableArray<ciMetadata*>* objects);
  73   void insert(int index, ciMetadata* obj, GrowableArray<ciMetadata*>* objects);
  74 
  75   ciObject* create_new_object(oop o);
  76   ciMetadata* create_new_object(Metadata* o);
  77 
  78   void ensure_metadata_alive(ciMetadata* m);
  79 
  80   static bool is_equal(NonPermObject* p, oop key) {
  81     return p->object()->get_oop() == key;
  82   }
  83 
  84   NonPermObject* &find_non_perm(oop key);
  85   void insert_non_perm(NonPermObject* &where, oop key, ciObject* obj);
  86 
  87   void init_ident_of(ciBaseObject* obj);
  88 
  89   Arena* arena() { return _arena; }
  90 
  91   void print_contents_impl();
  92 
  93   ciInstance* get_unloaded_instance(ciInstanceKlass* klass);
  94 
  95 public:
  96   static bool is_initialized() { return _initialized; }
  97 
  98   static void initialize();
  99   void init_shared_objects();