< prev index next >
src/share/vm/classfile/loaderConstraints.hpp
Print this page
*** 23,54 ****
*/
#ifndef SHARE_VM_CLASSFILE_LOADERCONSTRAINTS_HPP
#define SHARE_VM_CLASSFILE_LOADERCONSTRAINTS_HPP
- #include "classfile/dictionary.hpp"
#include "classfile/placeholders.hpp"
#include "utilities/hashtable.hpp"
class LoaderConstraintEntry;
class Symbol;
class LoaderConstraintTable : public Hashtable<InstanceKlass*, mtClass> {
- friend class VMStructs;
- private:
-
- enum Constants {
- _loader_constraint_size = 107, // number of entries in constraint table
- _nof_buckets = 1009 // number of buckets in hash table
- };
LoaderConstraintEntry** find_loader_constraint(Symbol* name,
Handle loader);
public:
! LoaderConstraintTable(int nof_buckets);
LoaderConstraintEntry* new_entry(unsigned int hash, Symbol* name,
InstanceKlass* klass, int num_loaders,
int max_loaders);
void free_entry(LoaderConstraintEntry *entry);
--- 23,48 ----
*/
#ifndef SHARE_VM_CLASSFILE_LOADERCONSTRAINTS_HPP
#define SHARE_VM_CLASSFILE_LOADERCONSTRAINTS_HPP
#include "classfile/placeholders.hpp"
#include "utilities/hashtable.hpp"
+ class ClassLoaderData;
class LoaderConstraintEntry;
class Symbol;
class LoaderConstraintTable : public Hashtable<InstanceKlass*, mtClass> {
+ private:
LoaderConstraintEntry** find_loader_constraint(Symbol* name,
Handle loader);
public:
! LoaderConstraintTable(int table_size);
LoaderConstraintEntry* new_entry(unsigned int hash, Symbol* name,
InstanceKlass* klass, int num_loaders,
int max_loaders);
void free_entry(LoaderConstraintEntry *entry);
*** 82,99 ****
bool check_or_update(InstanceKlass* k, Handle loader, Symbol* name);
void purge_loader_constraints();
! void verify(Dictionary* dictionary, PlaceholderTable* placeholders);
#ifndef PRODUCT
void print();
#endif
};
class LoaderConstraintEntry : public HashtableEntry<InstanceKlass*, mtClass> {
- friend class VMStructs;
private:
Symbol* _name; // class name
int _num_loaders;
int _max_loaders;
// Loader constraints enforce correct linking behavior.
--- 76,92 ----
bool check_or_update(InstanceKlass* k, Handle loader, Symbol* name);
void purge_loader_constraints();
! void verify(PlaceholderTable* placeholders);
#ifndef PRODUCT
void print();
#endif
};
class LoaderConstraintEntry : public HashtableEntry<InstanceKlass*, mtClass> {
private:
Symbol* _name; // class name
int _num_loaders;
int _max_loaders;
// Loader constraints enforce correct linking behavior.
< prev index next >