1624 ARRAY_INTRO( -3); |
1624 ARRAY_INTRO( -3); |
1625 // arrObj, index are set |
1625 // arrObj, index are set |
1626 if (rhsObject != NULL) { |
1626 if (rhsObject != NULL) { |
1627 /* Check assignability of rhsObject into arrObj */ |
1627 /* Check assignability of rhsObject into arrObj */ |
1628 Klass* rhsKlassOop = rhsObject->klass(); // EBX (subclass) |
1628 Klass* rhsKlassOop = rhsObject->klass(); // EBX (subclass) |
1629 Klass* elemKlassOop = objArrayKlass::cast(arrObj->klass())->element_klass(); // superklass EAX |
1629 Klass* elemKlassOop = ObjArrayKlass::cast(arrObj->klass())->element_klass(); // superklass EAX |
1630 // |
1630 // |
1631 // Check for compatibilty. This check must not GC!! |
1631 // Check for compatibilty. This check must not GC!! |
1632 // Seems way more expensive now that we must dispatch |
1632 // Seems way more expensive now that we must dispatch |
1633 // |
1633 // |
1634 if (rhsKlassOop != elemKlassOop && !rhsKlassOop->is_subtype_of(elemKlassOop)) { // ebx->is... |
1634 if (rhsKlassOop != elemKlassOop && !rhsKlassOop->is_subtype_of(elemKlassOop)) { // ebx->is... |