98 void classes_do(void f(Klass*, ClassLoaderData*)); |
98 void classes_do(void f(Klass*, ClassLoaderData*)); |
99 |
99 |
100 void methods_do(void f(Method*)); |
100 void methods_do(void f(Method*)); |
101 |
101 |
102 void unlink(BoolObjectClosure* is_alive); |
102 void unlink(BoolObjectClosure* is_alive); |
|
103 void remove_classes_in_error_state(); |
103 |
104 |
104 // Classes loaded by the bootstrap loader are always strongly reachable. |
105 // Classes loaded by the bootstrap loader are always strongly reachable. |
105 // If we're not doing class unloading, all classes are strongly reachable. |
106 // If we're not doing class unloading, all classes are strongly reachable. |
106 static bool is_strongly_reachable(ClassLoaderData* loader_data, Klass* klass) { |
107 static bool is_strongly_reachable(ClassLoaderData* loader_data, Klass* klass) { |
107 assert (klass != NULL, "should have non-null klass"); |
108 assert (klass != NULL, "should have non-null klass"); |
124 // Sharing support |
125 // Sharing support |
125 void reorder_dictionary(); |
126 void reorder_dictionary(); |
126 |
127 |
127 ProtectionDomainCacheEntry* cache_get(oop protection_domain); |
128 ProtectionDomainCacheEntry* cache_get(oop protection_domain); |
128 |
129 |
129 #ifndef PRODUCT |
130 void print(bool details = true); |
130 void print(); |
|
131 #endif |
|
132 void verify(); |
131 void verify(); |
133 }; |
132 }; |
134 |
133 |
135 // The following classes can be in dictionary.cpp, but we need these |
134 // The following classes can be in dictionary.cpp, but we need these |
136 // to be in header file so that SA's vmStructs can access them. |
135 // to be in header file so that SA's vmStructs can access them. |