comparison src/share/vm/ci/ciSignature.cpp @ 3785:ddd894528dbc

7056328: JSR 292 invocation sometimes fails in adapters for types not on boot class path Reviewed-by: never
author jrose
date Thu, 23 Jun 2011 17:14:06 -0700
parents 1d1603768966
children 5eb9169b1a14
comparison
equal deleted inserted replaced
3784:aabf25fa3f05 3785:ddd894528dbc
33 // 33 //
34 // This class represents the signature of a method. 34 // This class represents the signature of a method.
35 35
36 // ------------------------------------------------------------------ 36 // ------------------------------------------------------------------
37 // ciSignature::ciSignature 37 // ciSignature::ciSignature
38 ciSignature::ciSignature(ciKlass* accessing_klass, ciSymbol* symbol) { 38 ciSignature::ciSignature(ciKlass* accessing_klass, constantPoolHandle cpool, ciSymbol* symbol) {
39 ASSERT_IN_VM; 39 ASSERT_IN_VM;
40 EXCEPTION_CONTEXT; 40 EXCEPTION_CONTEXT;
41 _accessing_klass = accessing_klass; 41 _accessing_klass = accessing_klass;
42 _symbol = symbol; 42 _symbol = symbol;
43 43
62 : (ciType*)ciEnv::unloaded_ciinstance_klass(); 62 : (ciType*)ciEnv::unloaded_ciinstance_klass();
63 env->record_out_of_memory_failure(); 63 env->record_out_of_memory_failure();
64 CLEAR_PENDING_EXCEPTION; 64 CLEAR_PENDING_EXCEPTION;
65 } else { 65 } else {
66 ciSymbol* klass_name = env->get_symbol(name); 66 ciSymbol* klass_name = env->get_symbol(name);
67 type = env->get_klass_by_name_impl(_accessing_klass, klass_name, false); 67 type = env->get_klass_by_name_impl(_accessing_klass, cpool, klass_name, false);
68 } 68 }
69 } 69 }
70 _types->append(type); 70 _types->append(type);
71 if (ss.at_return_type()) { 71 if (ss.at_return_type()) {
72 // Done processing the return type; do not add it into the count. 72 // Done processing the return type; do not add it into the count.