src/share/vm/opto/subnode.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File
*** old/src/share/vm/opto/subnode.cpp	Fri May  8 12:53:18 2009
--- new/src/share/vm/opto/subnode.cpp	Fri May  8 12:53:18 2009

*** 635,644 **** --- 635,650 ---- ciKlass* klass0 = p0->klass(); bool xklass0 = p0->klass_is_exact(); ciKlass* klass1 = p1->klass(); bool xklass1 = p1->klass_is_exact(); int kps = (p0->isa_klassptr()?1:0) + (p1->isa_klassptr()?1:0); + while (klass0->is_obj_array_klass() && klass1->is_obj_array_klass()) { + // Compare klasses of obj arrays elements. + klass0 = klass0->as_obj_array_klass()->element_klass(); + klass1 = klass1->as_obj_array_klass()->element_klass(); + + } if (klass0 && klass1 && kps != 1 && // both or neither are klass pointers klass0->is_loaded() && !klass0->is_interface() && // do not trust interfaces klass1->is_loaded() && !klass1->is_interface()) { bool unrelated_classes = false;

src/share/vm/opto/subnode.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File