comparison src/share/vm/oops/instanceKlass.cpp @ 14513:16c705d792be

Merge
author morris
date Fri, 28 Feb 2014 08:02:20 -0800
parents 7d30d4f37d31 47f00f3b3900
children d8041d695d19
comparison
equal deleted inserted replaced
14493:7d30d4f37d31 14513:16c705d792be
2197 2197
2198 void InstanceKlass::clean_method_data(BoolObjectClosure* is_alive) { 2198 void InstanceKlass::clean_method_data(BoolObjectClosure* is_alive) {
2199 for (int m = 0; m < methods()->length(); m++) { 2199 for (int m = 0; m < methods()->length(); m++) {
2200 MethodData* mdo = methods()->at(m)->method_data(); 2200 MethodData* mdo = methods()->at(m)->method_data();
2201 if (mdo != NULL) { 2201 if (mdo != NULL) {
2202 for (ProfileData* data = mdo->first_data(); 2202 mdo->clean_method_data(is_alive);
2203 mdo->is_valid(data);
2204 data = mdo->next_data(data)) {
2205 data->clean_weak_klass_links(is_alive);
2206 }
2207 ParametersTypeData* parameters = mdo->parameters_type_data();
2208 if (parameters != NULL) {
2209 parameters->clean_weak_klass_links(is_alive);
2210 }
2211 } 2203 }
2212 } 2204 }
2213 } 2205 }
2214 2206
2215 2207
2724 nmethod* cur = osr_nmethods_head(); 2716 nmethod* cur = osr_nmethods_head();
2725 int max_level = CompLevel_none; // Find the max comp level excluding n 2717 int max_level = CompLevel_none; // Find the max comp level excluding n
2726 Method* m = n->method(); 2718 Method* m = n->method();
2727 // Search for match 2719 // Search for match
2728 while(cur != NULL && cur != n) { 2720 while(cur != NULL && cur != n) {
2729 if (TieredCompilation) { 2721 if (TieredCompilation && m == cur->method()) {
2730 // Find max level before n 2722 // Find max level before n
2731 max_level = MAX2(max_level, cur->comp_level()); 2723 max_level = MAX2(max_level, cur->comp_level());
2732 } 2724 }
2733 last = cur; 2725 last = cur;
2734 cur = cur->osr_link(); 2726 cur = cur->osr_link();
2746 n->set_osr_link(NULL); 2738 n->set_osr_link(NULL);
2747 if (TieredCompilation) { 2739 if (TieredCompilation) {
2748 cur = next; 2740 cur = next;
2749 while (cur != NULL) { 2741 while (cur != NULL) {
2750 // Find max level after n 2742 // Find max level after n
2751 max_level = MAX2(max_level, cur->comp_level()); 2743 if (m == cur->method()) {
2744 max_level = MAX2(max_level, cur->comp_level());
2745 }
2752 cur = cur->osr_link(); 2746 cur = cur->osr_link();
2753 } 2747 }
2754 m->set_highest_osr_comp_level(max_level); 2748 m->set_highest_osr_comp_level(max_level);
2755 } 2749 }
2756 // Remember to unlock again 2750 // Remember to unlock again