17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #ifndef SHARE_VM_CLASSFILE_PLACEHOLDERS_HPP
26 #define SHARE_VM_CLASSFILE_PLACEHOLDERS_HPP
27
28 #include "runtime/thread.hpp"
29 #include "utilities/hashtable.hpp"
30
31 class PlaceholderEntry;
32
33 // Placeholder objects. These represent classes currently
34 // being loaded, as well as arrays of primitives.
35 //
36
37 class PlaceholderTable : public TwoOopHashtable<Symbol*, mtClass> {
38 friend class VMStructs;
39
40 public:
41 PlaceholderTable(int table_size);
42
43 PlaceholderEntry* new_entry(int hash, Symbol* name, ClassLoaderData* loader_data, bool havesupername, Symbol* supername);
44 void free_entry(PlaceholderEntry* entry);
45
46 PlaceholderEntry* bucket(int i) {
47 return (PlaceholderEntry*)Hashtable<Symbol*, mtClass>::bucket(i);
48 }
49
50 PlaceholderEntry** bucket_addr(int i) {
51 return (PlaceholderEntry**)Hashtable<Symbol*, mtClass>::bucket_addr(i);
52 }
53
54 void add_entry(int index, PlaceholderEntry* new_entry) {
55 Hashtable<Symbol*, mtClass>::add_entry(index, (HashtableEntry<Symbol*, mtClass>*)new_entry);
56 }
57
|
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #ifndef SHARE_VM_CLASSFILE_PLACEHOLDERS_HPP
26 #define SHARE_VM_CLASSFILE_PLACEHOLDERS_HPP
27
28 #include "runtime/thread.hpp"
29 #include "utilities/hashtable.hpp"
30
31 class PlaceholderEntry;
32
33 // Placeholder objects. These represent classes currently
34 // being loaded, as well as arrays of primitives.
35 //
36
37 class PlaceholderTable : public Hashtable<Symbol*, mtClass> {
38 friend class VMStructs;
39
40 public:
41 PlaceholderTable(int table_size);
42
43 PlaceholderEntry* new_entry(int hash, Symbol* name, ClassLoaderData* loader_data, bool havesupername, Symbol* supername);
44 void free_entry(PlaceholderEntry* entry);
45
46 PlaceholderEntry* bucket(int i) {
47 return (PlaceholderEntry*)Hashtable<Symbol*, mtClass>::bucket(i);
48 }
49
50 PlaceholderEntry** bucket_addr(int i) {
51 return (PlaceholderEntry**)Hashtable<Symbol*, mtClass>::bucket_addr(i);
52 }
53
54 void add_entry(int index, PlaceholderEntry* new_entry) {
55 Hashtable<Symbol*, mtClass>::add_entry(index, (HashtableEntry<Symbol*, mtClass>*)new_entry);
56 }
57
|