2194 Klass** klass = adr_implementor();
2195 assert(klass != NULL, "null klass");
2196 if (klass != NULL) {
2197 *klass = NULL;
2198 }
2199 }
2200 }
2201 }
2202 }
2203 }
2204
2205 void InstanceKlass::clean_method_data(BoolObjectClosure* is_alive) {
2206 for (int m = 0; m < methods()->length(); m++) {
2207 MethodData* mdo = methods()->at(m)->method_data();
2208 if (mdo != NULL) {
2209 for (ProfileData* data = mdo->first_data();
2210 mdo->is_valid(data);
2211 data = mdo->next_data(data)) {
2212 data->clean_weak_klass_links(is_alive);
2213 }
2214 }
2215 }
2216 }
2217
2218
2219 static void remove_unshareable_in_class(Klass* k) {
2220 // remove klass's unshareable info
2221 k->remove_unshareable_info();
2222 }
2223
2224 void InstanceKlass::remove_unshareable_info() {
2225 Klass::remove_unshareable_info();
2226 // Unlink the class
2227 if (is_linked()) {
2228 unlink_class();
2229 }
2230 init_implementor();
2231
2232 constants()->remove_unshareable_info();
2233
|
2194 Klass** klass = adr_implementor();
2195 assert(klass != NULL, "null klass");
2196 if (klass != NULL) {
2197 *klass = NULL;
2198 }
2199 }
2200 }
2201 }
2202 }
2203 }
2204
2205 void InstanceKlass::clean_method_data(BoolObjectClosure* is_alive) {
2206 for (int m = 0; m < methods()->length(); m++) {
2207 MethodData* mdo = methods()->at(m)->method_data();
2208 if (mdo != NULL) {
2209 for (ProfileData* data = mdo->first_data();
2210 mdo->is_valid(data);
2211 data = mdo->next_data(data)) {
2212 data->clean_weak_klass_links(is_alive);
2213 }
2214 ParametersTypeData* parameters = mdo->parameters_type_data();
2215 if (parameters != NULL) {
2216 parameters->clean_weak_klass_links(is_alive);
2217 }
2218 }
2219 }
2220 }
2221
2222
2223 static void remove_unshareable_in_class(Klass* k) {
2224 // remove klass's unshareable info
2225 k->remove_unshareable_info();
2226 }
2227
2228 void InstanceKlass::remove_unshareable_info() {
2229 Klass::remove_unshareable_info();
2230 // Unlink the class
2231 if (is_linked()) {
2232 unlink_class();
2233 }
2234 init_implementor();
2235
2236 constants()->remove_unshareable_info();
2237
|