56 57 public: 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 static int metadata_compare(Metadata* const& key, ciMetadata* const& elt); 72 73 ciObject* create_new_object(oop o); 74 ciMetadata* create_new_metadata(Metadata* o); 75 76 void ensure_metadata_alive(ciMetadata* m); 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(); | 56 57 public: 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 static int metadata_compare(Metadata* const& key, ciMetadata* const& elt); 72 73 ciObject* create_new_object(oop o); 74 ciMetadata* create_new_metadata(Metadata* o); 75 76 static bool is_equal(NonPermObject* p, oop key) { 77 return p->object()->get_oop() == key; 78 } 79 80 NonPermObject* &find_non_perm(oop key); 81 void insert_non_perm(NonPermObject* &where, oop key, ciObject* obj); 82 83 void init_ident_of(ciBaseObject* obj); 84 85 Arena* arena() { return _arena; } 86 87 void print_contents_impl(); 88 89 ciInstance* get_unloaded_instance(ciInstanceKlass* klass); 90 91 public: 92 static bool is_initialized() { return _initialized; } 93 94 static void initialize(); 95 void init_shared_objects(); |