< prev index next >
src/share/vm/classfile/loaderConstraints.hpp
Print this page
@@ -23,32 +23,26 @@
*/
#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 ClassLoaderData;
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
- };
+private:
LoaderConstraintEntry** find_loader_constraint(Symbol* name,
Handle loader);
public:
- LoaderConstraintTable(int nof_buckets);
+ 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,18 +76,17 @@
bool check_or_update(InstanceKlass* k, Handle loader, Symbol* name);
void purge_loader_constraints();
- void verify(Dictionary* dictionary, PlaceholderTable* placeholders);
+ void verify(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.
< prev index next >