Mercurial > hg > truffle
comparison src/share/vm/opto/subnode.cpp @ 668:90a66aa50514
6820510: assertion failure with unloaded class in subnode.cpp
Reviewed-by: kvn
author | never |
---|---|
date | Tue, 24 Mar 2009 15:09:52 -0700 |
parents | cc80376deb0c |
children | a9e116455022 |
comparison
equal
deleted
inserted
replaced
667:78af5ae8e731 | 668:90a66aa50514 |
---|---|
637 ciKlass* klass1 = p1->klass(); | 637 ciKlass* klass1 = p1->klass(); |
638 bool xklass1 = p1->klass_is_exact(); | 638 bool xklass1 = p1->klass_is_exact(); |
639 int kps = (p0->isa_klassptr()?1:0) + (p1->isa_klassptr()?1:0); | 639 int kps = (p0->isa_klassptr()?1:0) + (p1->isa_klassptr()?1:0); |
640 if (klass0 && klass1 && | 640 if (klass0 && klass1 && |
641 kps != 1 && // both or neither are klass pointers | 641 kps != 1 && // both or neither are klass pointers |
642 !klass0->is_interface() && // do not trust interfaces | 642 klass0->is_loaded() && !klass0->is_interface() && // do not trust interfaces |
643 !klass1->is_interface()) { | 643 klass1->is_loaded() && !klass1->is_interface()) { |
644 bool unrelated_classes = false; | 644 bool unrelated_classes = false; |
645 // See if neither subclasses the other, or if the class on top | 645 // See if neither subclasses the other, or if the class on top |
646 // is precise. In either of these cases, the compare is known | 646 // is precise. In either of these cases, the compare is known |
647 // to fail if at least one of the pointers is provably not null. | 647 // to fail if at least one of the pointers is provably not null. |
648 if (klass0->equals(klass1) || // if types are unequal but klasses are | 648 if (klass0->equals(klass1) || // if types are unequal but klasses are |