1086 if (alloc == NULL) { |
1086 if (alloc == NULL) { |
1087 Node *r_adr = basic_plus_adr(array, arrayOopDesc::length_offset_in_bytes()); |
1087 Node *r_adr = basic_plus_adr(array, arrayOopDesc::length_offset_in_bytes()); |
1088 alen = _gvn.transform( new (C, 3) LoadRangeNode(0, immutable_memory(), r_adr, TypeInt::POS)); |
1088 alen = _gvn.transform( new (C, 3) LoadRangeNode(0, immutable_memory(), r_adr, TypeInt::POS)); |
1089 } else { |
1089 } else { |
1090 alen = alloc->Ideal_length(); |
1090 alen = alloc->Ideal_length(); |
1091 Node* ccast = alloc->make_ideal_length(_gvn.type(array)->is_aryptr(), &_gvn); |
1091 Node* ccast = alloc->make_ideal_length(_gvn.type(array)->is_oopptr(), &_gvn); |
1092 if (ccast != alen) { |
1092 if (ccast != alen) { |
1093 alen = _gvn.transform(ccast); |
1093 alen = _gvn.transform(ccast); |
1094 } |
1094 } |
1095 } |
1095 } |
1096 return alen; |
1096 return alen; |