/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*
*/
#include "precompiled.hpp"
#include "ci/ciInstanceKlass.hpp"
#include "ci/ciObjArrayKlass.hpp"
#include "ci/ciObjArrayKlassKlass.hpp"
#include "ci/ciSymbol.hpp"
#include "ci/ciUtilities.hpp"
#include "oops/objArrayKlass.hpp"
// ciObjArrayKlass
//
// This class represents a klassOop in the HotSpot virtual machine
// whose Klass part is an objArrayKlass.
// ------------------------------------------------------------------
// ciObjArrayKlass::ciObjArrayKlass
//
// Constructor for loaded object array klasses.
if (dimension() == 1) {
} else {
}
if (!ciObjectFactory::is_initialized()) {
}
}
// ------------------------------------------------------------------
// ciObjArrayKlass::ciObjArrayKlass
//
// Constructor for unloaded object array klasses.
int dimension)
ciObjArrayKlassKlass::make()) {
if (dimension == 1) {
} else {
}
}
// ------------------------------------------------------------------
// ciObjArrayKlass::element_klass
//
// What is the one-level element type of this array?
if (_element_klass == NULL) {
// Produce the element klass.
if (is_loaded()) {
} else {
// We are an unloaded array klass. Attempt to fetch our
// element klass by name.
this,
dimension() - 1),
false);
}
}
return _element_klass;
}
// ------------------------------------------------------------------
// ciObjArrayKlass::construct_array_name
//
// Build an array name from an element name and a dimension.
int dimension) {
char* name;
int pos = 0;
}
} else {
+ dimension // for ['s
+ element_len;
int pos = 0;
}
}
}
// ------------------------------------------------------------------
// ciObjArrayKlass::make_impl
//
// Implementation of make.
if (element_klass->is_loaded()) {
// The element klass is loaded
if (HAS_PENDING_EXCEPTION) {
return ciEnv::unloaded_ciobjarrayklass();
}
}
// The array klass was unable to be made or the element klass was
// not loaded.
return ciEnv::unloaded_ciobjarrayklass();
}
return
->as_obj_array_klass();
}
// ------------------------------------------------------------------
// ciObjArrayKlass::make
//
// Make an array klass corresponding to the specified primitive type.
}