RFR(S): 8029351: assert(bt != T_OBJECT) failed: Guard is incorrect in VM:defmeth
coleen.phillimore at oracle.com
Mon Dec 9 08:28:21 PST 2013
On 12/9/2013 9:42 AM, David Chase wrote:
> On 2013-12-09, at 9:39 AM, Coleen Phillimore <coleen.phillimore at oracle.com> wrote:
>> On 12/9/2013 9:17 AM, David Chase wrote:
>>> I was attempting Christian's cleanup, and saw what would have been a nice one
>>> tag. basic_type() == T_OBJECT
>>> but that did not evaluate the same condition -- it also includes
>>> is_klass_index() || is_string_index()
>> These tags are temporary during class file parsing, so omitting them is safe (famous last words).
> So is including them ALSO safe, since they should never occur?
> I'd prefer to use an existing "are you an object" code rather than inventing another one.
> I could also insert asserts that those two cases are not leaking through.
Yes, these two tags are also safe and true. They might be expected in
other call sites (now or in the future), so don't add asserts.
More information about the hotspot-runtime-dev