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