1.1 --- a/src/share/vm/ci/ciKlass.cpp Fri Aug 31 16:39:35 2012 -0700 1.2 +++ b/src/share/vm/ci/ciKlass.cpp Sat Sep 01 13:25:18 2012 -0400 1.3 @@ -1,5 +1,5 @@ 1.4 /* 1.5 - * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved. 1.6 + * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved. 1.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 1.8 * 1.9 * This code is free software; you can redistribute it and/or modify it 1.10 @@ -30,13 +30,13 @@ 1.11 1.12 // ciKlass 1.13 // 1.14 -// This class represents a klassOop in the HotSpot virtual 1.15 +// This class represents a Klass* in the HotSpot virtual 1.16 // machine. 1.17 1.18 // ------------------------------------------------------------------ 1.19 // ciKlass::ciKlass 1.20 ciKlass::ciKlass(KlassHandle h_k) : ciType(h_k) { 1.21 - assert(get_oop()->is_klass(), "wrong type"); 1.22 + assert(get_Klass()->is_klass(), "wrong type"); 1.23 Klass* k = get_Klass(); 1.24 _layout_helper = k->layout_helper(); 1.25 Symbol* klass_name = k->name(); 1.26 @@ -49,7 +49,7 @@ 1.27 // 1.28 // Nameless klass variant. 1.29 ciKlass::ciKlass(KlassHandle h_k, ciSymbol* name) : ciType(h_k) { 1.30 - assert(get_oop()->is_klass(), "wrong type"); 1.31 + assert(get_Klass()->is_klass(), "wrong type"); 1.32 _name = name; 1.33 _layout_helper = Klass::_lh_neutral_value; 1.34 } 1.35 @@ -58,7 +58,7 @@ 1.36 // ciKlass::ciKlass 1.37 // 1.38 // Unloaded klass variant. 1.39 -ciKlass::ciKlass(ciSymbol* name, ciKlass* klass) : ciType(klass) { 1.40 +ciKlass::ciKlass(ciSymbol* name, BasicType bt) : ciType(bt) { 1.41 _name = name; 1.42 _layout_helper = Klass::_lh_neutral_value; 1.43 } 1.44 @@ -67,7 +67,6 @@ 1.45 // ciKlass::is_subtype_of 1.46 bool ciKlass::is_subtype_of(ciKlass* that) { 1.47 assert(is_loaded() && that->is_loaded(), "must be loaded"); 1.48 - assert(is_java_klass() && that->is_java_klass(), "must be java klasses"); 1.49 // Check to see if the klasses are identical. 1.50 if (this == that) { 1.51 return true; 1.52 @@ -75,7 +74,7 @@ 1.53 1.54 VM_ENTRY_MARK; 1.55 Klass* this_klass = get_Klass(); 1.56 - klassOop that_klass = that->get_klassOop(); 1.57 + Klass* that_klass = that->get_Klass(); 1.58 bool result = this_klass->is_subtype_of(that_klass); 1.59 1.60 return result; 1.61 @@ -85,12 +84,11 @@ 1.62 // ciKlass::is_subclass_of 1.63 bool ciKlass::is_subclass_of(ciKlass* that) { 1.64 assert(is_loaded() && that->is_loaded(), "must be loaded"); 1.65 - assert(is_java_klass() && that->is_java_klass(), "must be java klasses"); 1.66 // Check to see if the klasses are identical. 1.67 1.68 VM_ENTRY_MARK; 1.69 Klass* this_klass = get_Klass(); 1.70 - klassOop that_klass = that->get_klassOop(); 1.71 + Klass* that_klass = that->get_Klass(); 1.72 bool result = this_klass->is_subclass_of(that_klass); 1.73 1.74 return result; 1.75 @@ -100,7 +98,6 @@ 1.76 // ciKlass::super_depth 1.77 juint ciKlass::super_depth() { 1.78 assert(is_loaded(), "must be loaded"); 1.79 - assert(is_java_klass(), "must be java klasses"); 1.80 1.81 VM_ENTRY_MARK; 1.82 Klass* this_klass = get_Klass(); 1.83 @@ -111,7 +108,6 @@ 1.84 // ciKlass::super_check_offset 1.85 juint ciKlass::super_check_offset() { 1.86 assert(is_loaded(), "must be loaded"); 1.87 - assert(is_java_klass(), "must be java klasses"); 1.88 1.89 VM_ENTRY_MARK; 1.90 Klass* this_klass = get_Klass(); 1.91 @@ -122,19 +118,17 @@ 1.92 // ciKlass::super_of_depth 1.93 ciKlass* ciKlass::super_of_depth(juint i) { 1.94 assert(is_loaded(), "must be loaded"); 1.95 - assert(is_java_klass(), "must be java klasses"); 1.96 1.97 VM_ENTRY_MARK; 1.98 Klass* this_klass = get_Klass(); 1.99 - klassOop super = this_klass->primary_super_of_depth(i); 1.100 - return (super != NULL) ? CURRENT_THREAD_ENV->get_object(super)->as_klass() : NULL; 1.101 + Klass* super = this_klass->primary_super_of_depth(i); 1.102 + return (super != NULL) ? CURRENT_THREAD_ENV->get_klass(super) : NULL; 1.103 } 1.104 1.105 // ------------------------------------------------------------------ 1.106 // ciKlass::can_be_primary_super 1.107 bool ciKlass::can_be_primary_super() { 1.108 assert(is_loaded(), "must be loaded"); 1.109 - assert(is_java_klass(), "must be java klasses"); 1.110 1.111 VM_ENTRY_MARK; 1.112 Klass* this_klass = get_Klass(); 1.113 @@ -156,7 +150,6 @@ 1.114 ciKlass* 1.115 ciKlass::least_common_ancestor(ciKlass* that) { 1.116 assert(is_loaded() && that->is_loaded(), "must be loaded"); 1.117 - assert(is_java_klass() && that->is_java_klass(), "must be java klasses"); 1.118 // Check to see if the klasses are identical. 1.119 if (this == that) { 1.120 return this; 1.121 @@ -178,7 +171,7 @@ 1.122 1.123 // Create the ciInstanceKlass for the lca. 1.124 ciKlass* result = 1.125 - CURRENT_THREAD_ENV->get_object(lca->as_klassOop())->as_klass(); 1.126 + CURRENT_THREAD_ENV->get_klass(lca); 1.127 1.128 return result; 1.129 } 1.130 @@ -204,7 +197,7 @@ 1.131 if (!is_loaded()) 1.132 return ciEnv::current()->get_unloaded_klass_mirror(this); 1.133 oop java_mirror = get_Klass()->java_mirror(); 1.134 - return CURRENT_ENV->get_object(java_mirror)->as_instance(); 1.135 + return CURRENT_ENV->get_instance(java_mirror); 1.136 ) 1.137 } 1.138