comparison src/share/vm/ci/ciMethod.cpp @ 3461:81d815b05abb

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 8033953d67ff
children 47edfca346ab 2c359f27615c
comparison
equal deleted inserted replaced
3460:e9b51b4bdcc7 3461:81d815b05abb
123 // generating _signature may allow GC and therefore move m. 123 // generating _signature may allow GC and therefore move m.
124 // These fields are always filled in. 124 // These fields are always filled in.
125 _name = env->get_symbol(h_m()->name()); 125 _name = env->get_symbol(h_m()->name());
126 _holder = env->get_object(h_m()->method_holder())->as_instance_klass(); 126 _holder = env->get_object(h_m()->method_holder())->as_instance_klass();
127 ciSymbol* sig_symbol = env->get_symbol(h_m()->signature()); 127 ciSymbol* sig_symbol = env->get_symbol(h_m()->signature());
128 _signature = new (env->arena()) ciSignature(_holder, sig_symbol); 128 constantPoolHandle cpool = h_m()->constants();
129 _signature = new (env->arena()) ciSignature(_holder, cpool, sig_symbol);
129 _method_data = NULL; 130 _method_data = NULL;
130 // Take a snapshot of these values, so they will be commensurate with the MDO. 131 // Take a snapshot of these values, so they will be commensurate with the MDO.
131 if (ProfileInterpreter || TieredCompilation) { 132 if (ProfileInterpreter || TieredCompilation) {
132 int invcnt = h_m()->interpreter_invocation_count(); 133 int invcnt = h_m()->interpreter_invocation_count();
133 // if the value overflowed report it as max int 134 // if the value overflowed report it as max int
150 ciSymbol* name, 151 ciSymbol* name,
151 ciSymbol* signature) : ciObject(ciMethodKlass::make()) { 152 ciSymbol* signature) : ciObject(ciMethodKlass::make()) {
152 // These fields are always filled in. 153 // These fields are always filled in.
153 _name = name; 154 _name = name;
154 _holder = holder; 155 _holder = holder;
155 _signature = new (CURRENT_ENV->arena()) ciSignature(_holder, signature); 156 _signature = new (CURRENT_ENV->arena()) ciSignature(_holder, constantPoolHandle(), signature);
156 _intrinsic_id = vmIntrinsics::_none; 157 _intrinsic_id = vmIntrinsics::_none;
157 _liveness = NULL; 158 _liveness = NULL;
158 _can_be_statically_bound = false; 159 _can_be_statically_bound = false;
159 _method_blocks = NULL; 160 _method_blocks = NULL;
160 _method_data = NULL; 161 _method_data = NULL;