RFR (L) : 8014013 : CallInfo structure no longer accurately reports the result of a LinkResolver operation

John Rose john.r.rose at oracle.com
Thu Aug 15 23:12:36 PDT 2013

On Aug 15, 2013, at 7:38 PM, Christian Thalinger <christian.thalinger at oracle.com> wrote:

> src/share/vm/runtime/fieldDescriptor.cpp:
> +   if (_cp.is_null() || field_holder() != ik) {
> +     _cp = constantPoolHandle(Thread::current(), ik->constants());
> +     assert(field_holder() == ik, "must be already initialized to this class");
> +   }
> This assert cannot hold.

The fd::initialize call resets a fd previously pointing at a different field to a new field.
This requires a shift in the field_holder.
The call to initialize is fieldStreams.hpp, where a fd embedded in the stream object gets reused for successive fields.
So I think this assert measures something meaningful.
Perhaps the method should be named "reinitialize" or "reset" to emphasize the multiple use.

— John
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20130815/04fc38f9/attachment.html 

More information about the hotspot-compiler-dev mailing list