src/share/vm/ci/ciKlass.cpp

changeset 4037
da91efe96a93
parent 2708
1d1603768966
child 5910
6171eb9da4fd
     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  

mercurial