comparison src/share/vm/ci/ciArrayKlass.hpp @ 6725:da91efe96a93

6964458: Reimplement class meta-data storage to use native memory Summary: Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland Contributed-by: jmasa <jon.masamitsu@oracle.com>, stefank <stefan.karlsson@oracle.com>, mgerdin <mikael.gerdin@oracle.com>, never <tom.rodriguez@oracle.com>
author coleenp
date Sat, 01 Sep 2012 13:25:18 -0400
parents f6f3bb0ee072
children d8ce2825b193
comparison
equal deleted inserted replaced
6724:36d1d483d5d6 6725:da91efe96a93
1 /* 1 /*
2 * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1999, 2012, 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.
27 27
28 #include "ci/ciKlass.hpp" 28 #include "ci/ciKlass.hpp"
29 29
30 // ciArrayKlass 30 // ciArrayKlass
31 // 31 //
32 // This class, and its subclasses represent klassOops in the 32 // This class, and its subclasses represent Klass*s in the
33 // HotSpot virtual machine whose Klass part is an arrayKlass. 33 // HotSpot virtual machine whose Klass part is an arrayKlass.
34 class ciArrayKlass : public ciKlass { 34 class ciArrayKlass : public ciKlass {
35 CI_PACKAGE_ACCESS 35 CI_PACKAGE_ACCESS
36 private: 36 private:
37 jint _dimension; 37 jint _dimension;
38 38
39 protected: 39 protected:
40 ciArrayKlass(KlassHandle h_k); 40 ciArrayKlass(KlassHandle h_k);
41 ciArrayKlass(ciSymbol* name, int dimension, ciKlass* klass); 41 ciArrayKlass(ciSymbol* name, int dimension, BasicType bt);
42 42
43 arrayKlass* get_arrayKlass() { 43 arrayKlass* get_arrayKlass() {
44 return (arrayKlass*)get_Klass(); 44 return (arrayKlass*)get_Klass();
45 } 45 }
46 46
56 // This is a real field in arrayKlass, but we derive it from element_type. 56 // This is a real field in arrayKlass, but we derive it from element_type.
57 return element_type()->java_mirror(); 57 return element_type()->java_mirror();
58 } 58 }
59 59
60 // What kind of vmObject is this? 60 // What kind of vmObject is this?
61 bool is_array_klass() { return true; } 61 bool is_array_klass() const { return true; }
62 bool is_java_klass() { return true; } 62 bool is_java_klass() const { return true; }
63 63
64 static ciArrayKlass* make(ciType* element_type); 64 static ciArrayKlass* make(ciType* element_type);
65 }; 65 };
66 66
67 #endif // SHARE_VM_CI_CIARRAYKLASS_HPP 67 #endif // SHARE_VM_CI_CIARRAYKLASS_HPP