equal
deleted
inserted
replaced
54 void LoaderConstraintTable::free_entry(LoaderConstraintEntry *entry) { |
54 void LoaderConstraintTable::free_entry(LoaderConstraintEntry *entry) { |
55 // decrement name refcount before freeing |
55 // decrement name refcount before freeing |
56 entry->name()->decrement_refcount(); |
56 entry->name()->decrement_refcount(); |
57 Hashtable<InstanceKlass*, mtClass>::free_entry(entry); |
57 Hashtable<InstanceKlass*, mtClass>::free_entry(entry); |
58 } |
58 } |
59 |
|
60 // Enhanced Class Redefinition support |
|
61 void LoaderConstraintTable::classes_do(KlassClosure* f) { |
|
62 for (int index = 0; index < table_size(); index++) { |
|
63 for (LoaderConstraintEntry* probe = bucket(index); |
|
64 probe != NULL; |
|
65 probe = probe->next()) { |
|
66 if (probe->klass() != NULL) { |
|
67 f->do_klass(probe->klass()); |
|
68 } |
|
69 } |
|
70 } |
|
71 } |
|
72 |
59 |
73 // The loaderConstraintTable must always be accessed with the |
60 // The loaderConstraintTable must always be accessed with the |
74 // SystemDictionary lock held. This is true even for readers as |
61 // SystemDictionary lock held. This is true even for readers as |
75 // entries in the table could be being dynamically resized. |
62 // entries in the table could be being dynamically resized. |
76 |
63 |