comparison src/share/vm/ci/ciObjectFactory.hpp @ 4137:04b9a2566eec

Merge with hsx23/hotspot.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Sat, 17 Dec 2011 21:40:27 +0100
parents 53636e2c9d03 5eb9169b1a14
children e522a00b91aa
comparison
equal deleted inserted replaced
3737:9dc19b7d89a3 4137:04b9a2566eec
34 // This class handles requests for the creation of new instances 34 // This class handles requests for the creation of new instances
35 // of ciObject and its subclasses. It contains a caching mechanism 35 // of ciObject and its subclasses. It contains a caching mechanism
36 // which ensures that for each oop, at most one ciObject is created. 36 // which ensures that for each oop, at most one ciObject is created.
37 // This invariant allows efficient implementation of ciObject. 37 // This invariant allows efficient implementation of ciObject.
38 class ciObjectFactory : public ResourceObj { 38 class ciObjectFactory : public ResourceObj {
39 friend class VMStructs;
40 friend class ciEnv;
41
39 private: 42 private:
40 static volatile bool _initialized; 43 static volatile bool _initialized;
41 static GrowableArray<ciObject*>* _shared_ci_objects; 44 static GrowableArray<ciObject*>* _shared_ci_objects;
42 static ciSymbol* _shared_ci_symbols[]; 45 static ciSymbol* _shared_ci_symbols[];
43 static int _shared_ident_limit; 46 static int _shared_ident_limit;
103 static ciSymbol* vm_symbol_at(int index); 106 static ciSymbol* vm_symbol_at(int index);
104 107
105 // Get the ciMethod representing an unloaded/unfound method. 108 // Get the ciMethod representing an unloaded/unfound method.
106 ciMethod* get_unloaded_method(ciInstanceKlass* holder, 109 ciMethod* get_unloaded_method(ciInstanceKlass* holder,
107 ciSymbol* name, 110 ciSymbol* name,
108 ciSymbol* signature); 111 ciSymbol* signature,
112 ciInstanceKlass* accessor);
109 113
110 // Get a ciKlass representing an unloaded klass. 114 // Get a ciKlass representing an unloaded klass.
111 ciKlass* get_unloaded_klass(ciKlass* accessing_klass, 115 ciKlass* get_unloaded_klass(ciKlass* accessing_klass,
112 ciSymbol* name, 116 ciSymbol* name,
113 bool create_if_not_found); 117 bool create_if_not_found);