Hi Coleen,

Thank you a lot for the review!

On 1/24/13 3:55 PM, Coleen Phillimore wrote:

Hi Serguei,

Putting functions in alphabetical order seems silly, it's better to have utility functions directly above (or below) the function that calls them. I'd take out the comment.

I have started looking at this code a bit. This function find_or_append_indirect_entry() should be used for the other indirect entries also, shouldn't it? The code looks familiar to the inside of the case statement to FieldRef, InterfaceRef and MethodRef.

You've got it right.
Yes, I noticed it but did not want to mess with it until it is proven to work well. My plan was to fix it for the FieldRef, InterfaceRef and MethodRef in a next round of fixes.


Also is boot_spec an indirect index too that has to be appended?

564 int boot_spec = scratch_cp->invoke_dynamic_bootstrap_method_ref_index_at(scratch_i);

This is a nice catch, will fix it.
I thought, it is an index into the operands array, but it refers to a CONSTANT_MethodHandle element.


Thanks,
Serguei




Thanks,
Coleen

On 01/24/2013 05:56 PM, serguei.spit...@oracle.com wrote:
Christian,


Thank you a lot for the review!

Nice catch with the ordering.
In fact, I tried to follow the order but missed that the find_new_index should go first. :)


Thanks,
Serguei


On 1/24/13 2:14 PM, Christian Thalinger wrote:
On Jan 22, 2013, at 4:07 PM, serguei.spit...@oracle.com wrote:

Please, review the fix for:
https://jbs.oracle.com/bugs/browse/JDK-8006542


Open webrev:
http://cr.openjdk.java.net/~sspitsyn/webrevs/2013/hotspot/8006542-JVMTI-JSR292.1/
src/share/vm/prims/jvmtiRedefineClasses.hpp:

+ // Support for constant pool merging (these routines are in alpha order):
    void append_entry(constantPoolHandle scratch_cp, int scratch_i,
      constantPoolHandle *merge_cp_p, int *merge_cp_length_p, TRAPS);
+ int find_or_append_indirect_entry(constantPoolHandle scratch_cp, int scratch_i,
+    constantPoolHandle *merge_cp_p, int *merge_cp_length_p, TRAPS);
    int find_new_index(int old_index);

Not really alpha order ;-)

Otherwise this looks good (as far as I can tell).

-- Chris

Summary:
Need a support for invokedynamic entry kinds when new and old constant pools are merged.

Testing:
  vm/mlvm/indy/func/jvmti/redefineClassInBootstrap
  Asked the VM SQE team to develop new INDY tests for better coverage.


Thanks,
Serguei






Reply via email to