357 |
357 |
358 // _index_map_count is just an optimization for knowing if |
358 // _index_map_count is just an optimization for knowing if |
359 // _index_map_p contains any entries. |
359 // _index_map_p contains any entries. |
360 int _index_map_count; |
360 int _index_map_count; |
361 intArray * _index_map_p; |
361 intArray * _index_map_p; |
|
362 |
|
363 // _operands_index_map_count is just an optimization for knowing if |
|
364 // _operands_index_map_p contains any entries. |
|
365 int _operands_cur_length; |
|
366 int _operands_index_map_count; |
|
367 intArray * _operands_index_map_p; |
|
368 |
362 // ptr to _class_count scratch_classes |
369 // ptr to _class_count scratch_classes |
363 Klass** _scratch_classes; |
370 Klass** _scratch_classes; |
364 jvmtiError _res; |
371 jvmtiError _res; |
365 |
372 |
366 // Performance measurement support. These timers do not cover all |
373 // Performance measurement support. These timers do not cover all |
367 // the work done for JVM/TI RedefineClasses() but they do cover |
374 // the work done for JVM/TI RedefineClasses() but they do cover |
368 // the heavy lifting. |
375 // the heavy lifting. |
420 void increment_class_counter(InstanceKlass *ik, TRAPS); |
427 void increment_class_counter(InstanceKlass *ik, TRAPS); |
421 |
428 |
422 // Support for constant pool merging (these routines are in alpha order): |
429 // Support for constant pool merging (these routines are in alpha order): |
423 void append_entry(constantPoolHandle scratch_cp, int scratch_i, |
430 void append_entry(constantPoolHandle scratch_cp, int scratch_i, |
424 constantPoolHandle *merge_cp_p, int *merge_cp_length_p, TRAPS); |
431 constantPoolHandle *merge_cp_p, int *merge_cp_length_p, TRAPS); |
|
432 void append_operand(constantPoolHandle scratch_cp, int scratch_bootstrap_spec_index, |
|
433 constantPoolHandle *merge_cp_p, int *merge_cp_length_p, TRAPS); |
|
434 void finalize_operands_merge(constantPoolHandle merge_cp, TRAPS); |
425 int find_or_append_indirect_entry(constantPoolHandle scratch_cp, int scratch_i, |
435 int find_or_append_indirect_entry(constantPoolHandle scratch_cp, int scratch_i, |
426 constantPoolHandle *merge_cp_p, int *merge_cp_length_p, TRAPS); |
436 constantPoolHandle *merge_cp_p, int *merge_cp_length_p, TRAPS); |
|
437 int find_or_append_operand(constantPoolHandle scratch_cp, int scratch_bootstrap_spec_index, |
|
438 constantPoolHandle *merge_cp_p, int *merge_cp_length_p, TRAPS); |
427 int find_new_index(int old_index); |
439 int find_new_index(int old_index); |
|
440 int find_new_operand_index(int old_bootstrap_spec_index); |
428 bool is_unresolved_class_mismatch(constantPoolHandle cp1, int index1, |
441 bool is_unresolved_class_mismatch(constantPoolHandle cp1, int index1, |
429 constantPoolHandle cp2, int index2); |
442 constantPoolHandle cp2, int index2); |
430 void map_index(constantPoolHandle scratch_cp, int old_index, int new_index); |
443 void map_index(constantPoolHandle scratch_cp, int old_index, int new_index); |
|
444 void map_operand_index(int old_bootstrap_spec_index, int new_bootstrap_spec_index); |
431 bool merge_constant_pools(constantPoolHandle old_cp, |
445 bool merge_constant_pools(constantPoolHandle old_cp, |
432 constantPoolHandle scratch_cp, constantPoolHandle *merge_cp_p, |
446 constantPoolHandle scratch_cp, constantPoolHandle *merge_cp_p, |
433 int *merge_cp_length_p, TRAPS); |
447 int *merge_cp_length_p, TRAPS); |
434 jvmtiError merge_cp_and_rewrite(instanceKlassHandle the_class, |
448 jvmtiError merge_cp_and_rewrite(instanceKlassHandle the_class, |
435 instanceKlassHandle scratch_class, TRAPS); |
449 instanceKlassHandle scratch_class, TRAPS); |