diff -r e92b3d8118f1 -r 6b2aecc4f7d8 hotspot/src/share/vm/ci/ciObjectFactory.hpp --- a/hotspot/src/share/vm/ci/ciObjectFactory.hpp Mon Jun 07 14:17:01 2010 -0700 +++ b/hotspot/src/share/vm/ci/ciObjectFactory.hpp Wed Jun 09 18:50:45 2010 -0700 @@ -39,6 +39,7 @@ GrowableArray* _ci_objects; GrowableArray* _unloaded_methods; GrowableArray* _unloaded_klasses; + GrowableArray* _unloaded_instances; GrowableArray* _return_addresses; int _next_ident; @@ -73,6 +74,8 @@ void print_contents_impl(); + ciInstance* get_unloaded_instance(ciInstanceKlass* klass); + public: static bool is_initialized() { return _initialized; } @@ -98,6 +101,18 @@ ciSymbol* name, bool create_if_not_found); + // Get a ciInstance representing an unresolved klass mirror. + ciInstance* get_unloaded_klass_mirror(ciKlass* type); + + // Get a ciInstance representing an unresolved method handle constant. + ciInstance* get_unloaded_method_handle_constant(ciKlass* holder, + ciSymbol* name, + ciSymbol* signature, + int ref_kind); + + // Get a ciInstance representing an unresolved method type constant. + ciInstance* get_unloaded_method_type_constant(ciSymbol* signature); + // Get the ciMethodData representing the methodData for a method // with none.