This commit is contained in:
Coleen Phillimore 2013-02-19 13:33:39 -05:00
commit 99fa0d1e99
2 changed files with 14 additions and 0 deletions

View File

@ -456,6 +456,8 @@ class Method : public Metadata {
void print_codes_on(int from, int to, outputStream* st) const PRODUCT_RETURN;
// method parameters
bool has_method_parameters() const
{ return constMethod()->has_method_parameters(); }
int method_parameters_length() const
{ return constMethod()->method_parameters_length(); }
MethodParametersElement* method_parameters_start() const

View File

@ -1558,6 +1558,18 @@ void VM_RedefineClasses::rewrite_cp_refs_in_method(methodHandle method,
} break;
}
} // end for each bytecode
// We also need to rewrite the parameter name indexes, if there is
// method parameter data present
if(method->has_method_parameters()) {
const int len = method->method_parameters_length();
MethodParametersElement* elem = method->method_parameters_start();
for (int i = 0; i < len; i++) {
const u2 cp_index = elem[i].name_cp_index;
elem[i].name_cp_index = find_new_index(cp_index);
}
}
} // end rewrite_cp_refs_in_method()