Mercurial > hg > truffle
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. |