src/share/vm/oops/objArrayKlass.cpp

changeset 9507
7e72702243a4
parent 9327
f96fcd9e1e1b
child 9572
624a0741915c
equal deleted inserted replaced
9499:778ff2150570 9507:7e72702243a4
1 /* 1 /*
2 * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
187 objArrayOop ObjArrayKlass::allocate(int length, TRAPS) { 187 objArrayOop ObjArrayKlass::allocate(int length, TRAPS) {
188 if (length >= 0) { 188 if (length >= 0) {
189 if (length <= arrayOopDesc::max_array_length(T_OBJECT)) { 189 if (length <= arrayOopDesc::max_array_length(T_OBJECT)) {
190 int size = objArrayOopDesc::object_size(length); 190 int size = objArrayOopDesc::object_size(length);
191 KlassHandle h_k(THREAD, this); 191 KlassHandle h_k(THREAD, this);
192 return (objArrayOop)CollectedHeap::array_allocate(h_k, size, length, CHECK_NULL); 192 return (objArrayOop)CollectedHeap::array_allocate(h_k, size, length, THREAD);
193 } else { 193 } else {
194 report_java_out_of_memory("Requested array size exceeds VM limit"); 194 report_java_out_of_memory("Requested array size exceeds VM limit");
195 JvmtiExport::post_array_size_exhausted(); 195 JvmtiExport::post_array_size_exhausted();
196 THROW_OOP_0(Universe::out_of_memory_error_array_size()); 196 THROW_OOP_0(Universe::out_of_memory_error_array_size());
197 } 197 }
360 360
361 ObjArrayKlass *ak = ObjArrayKlass::cast(higher_dimension()); 361 ObjArrayKlass *ak = ObjArrayKlass::cast(higher_dimension());
362 if (or_null) { 362 if (or_null) {
363 return ak->array_klass_or_null(n); 363 return ak->array_klass_or_null(n);
364 } 364 }
365 return ak->array_klass(n, CHECK_NULL); 365 return ak->array_klass(n, THREAD);
366 } 366 }
367 367
368 Klass* ObjArrayKlass::array_klass_impl(bool or_null, TRAPS) { 368 Klass* ObjArrayKlass::array_klass_impl(bool or_null, TRAPS) {
369 return array_klass_impl(or_null, dimension() + 1, CHECK_NULL); 369 return array_klass_impl(or_null, dimension() + 1, THREAD);
370 } 370 }
371 371
372 bool ObjArrayKlass::can_be_primary_super_slow() const { 372 bool ObjArrayKlass::can_be_primary_super_slow() const {
373 if (!bottom_klass()->can_be_primary_super()) 373 if (!bottom_klass()->can_be_primary_super())
374 // array of interfaces 374 // array of interfaces

mercurial