hotspot/src/share/vm/ci/ciType.cpp
changeset 13728 882756847a04
parent 7397 5b173b4ca846
child 14488 ab48109f7d1b
--- a/hotspot/src/share/vm/ci/ciType.cpp	Fri Aug 31 16:39:35 2012 -0700
+++ b/hotspot/src/share/vm/ci/ciType.cpp	Sat Sep 01 13:25:18 2012 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,6 +23,7 @@
  */
 
 #include "precompiled.hpp"
+#include "ci/ciEnv.hpp"
 #include "ci/ciType.hpp"
 #include "ci/ciUtilities.hpp"
 #include "classfile/systemDictionary.hpp"
@@ -38,20 +39,15 @@
 // ------------------------------------------------------------------
 // ciType::ciType
 //
-ciType::ciType(BasicType basic_type) : ciObject() {
+ciType::ciType(BasicType basic_type) : ciMetadata() {
   assert(basic_type >= T_BOOLEAN && basic_type <= T_CONFLICT, "range check");
-  assert(basic_type != T_OBJECT && basic_type != T_ARRAY, "not a reference type");
   _basic_type = basic_type;
 }
 
-ciType::ciType(KlassHandle k) : ciObject(k) {
+ciType::ciType(KlassHandle k) : ciMetadata(k()) {
   _basic_type = Klass::cast(k())->oop_is_array() ? T_ARRAY : T_OBJECT;
 }
 
-ciType::ciType(ciKlass* klass) : ciObject(klass) {
-  _basic_type = klass->is_array_klass_klass() ? T_ARRAY : T_OBJECT;
-}
-
 
 // ------------------------------------------------------------------
 // ciType::is_subtype_of
@@ -87,7 +83,7 @@
 //
 ciInstance* ciType::java_mirror() {
   VM_ENTRY_MARK;
-  return CURRENT_THREAD_ENV->get_object(Universe::java_mirror(basic_type()))->as_instance();
+  return CURRENT_THREAD_ENV->get_instance(Universe::java_mirror(basic_type()));
 }
 
 // ------------------------------------------------------------------
@@ -100,7 +96,7 @@
   if (basic_type() == T_VOID)  return NULL;
 
   VM_ENTRY_MARK;
-  return CURRENT_THREAD_ENV->get_object(SystemDictionary::box_klass(basic_type()))->as_instance_klass();
+  return CURRENT_THREAD_ENV->get_instance_klass(SystemDictionary::box_klass(basic_type()));
 }