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