< prev index next >

src/share/vm/oops/methodData.cpp

Print this page
rev 10455 : [mq]: webrev.01


1711     switch(dp->tag()) {
1712     case DataLayout::speculative_trap_data_tag: {
1713       SpeculativeTrapData* data = new SpeculativeTrapData(dp);
1714       Method* m = data->method();
1715       assert(m != NULL && cl->is_live(m), "Method should exist");
1716       break;
1717     }
1718     case DataLayout::bit_data_tag:
1719       continue;
1720     case DataLayout::no_tag:
1721     case DataLayout::arg_info_data_tag:
1722       return;
1723     default:
1724       fatal("unexpected tag %d", dp->tag());
1725     }
1726   }
1727 #endif
1728 }
1729 
1730 void MethodData::clean_method_data(BoolObjectClosure* is_alive) {

1731   for (ProfileData* data = first_data();
1732        is_valid(data);
1733        data = next_data(data)) {
1734     data->clean_weak_klass_links(is_alive);
1735   }
1736   ParametersTypeData* parameters = parameters_type_data();
1737   if (parameters != NULL) {
1738     parameters->clean_weak_klass_links(is_alive);
1739   }
1740 
1741   CleanExtraDataKlassClosure cl(is_alive);
1742   clean_extra_data(&cl);
1743   verify_extra_data_clean(&cl);
1744 }
1745 
1746 void MethodData::clean_weak_method_links() {

1747   for (ProfileData* data = first_data();
1748        is_valid(data);
1749        data = next_data(data)) {
1750     data->clean_weak_method_links();
1751   }
1752 
1753   CleanExtraDataMethodClosure cl;
1754   clean_extra_data(&cl);
1755   verify_extra_data_clean(&cl);
1756 }
1757 
1758 #ifdef ASSERT
1759 void MethodData::verify_clean_weak_method_links() {

1760   for (ProfileData* data = first_data();
1761        is_valid(data);
1762        data = next_data(data)) {
1763     data->verify_clean_weak_method_links();
1764   }
1765 
1766   CleanExtraDataMethodClosure cl;
1767   verify_extra_data_clean(&cl);
1768 }
1769 #endif // ASSERT


1711     switch(dp->tag()) {
1712     case DataLayout::speculative_trap_data_tag: {
1713       SpeculativeTrapData* data = new SpeculativeTrapData(dp);
1714       Method* m = data->method();
1715       assert(m != NULL && cl->is_live(m), "Method should exist");
1716       break;
1717     }
1718     case DataLayout::bit_data_tag:
1719       continue;
1720     case DataLayout::no_tag:
1721     case DataLayout::arg_info_data_tag:
1722       return;
1723     default:
1724       fatal("unexpected tag %d", dp->tag());
1725     }
1726   }
1727 #endif
1728 }
1729 
1730 void MethodData::clean_method_data(BoolObjectClosure* is_alive) {
1731   ResourceMark rm;
1732   for (ProfileData* data = first_data();
1733        is_valid(data);
1734        data = next_data(data)) {
1735     data->clean_weak_klass_links(is_alive);
1736   }
1737   ParametersTypeData* parameters = parameters_type_data();
1738   if (parameters != NULL) {
1739     parameters->clean_weak_klass_links(is_alive);
1740   }
1741 
1742   CleanExtraDataKlassClosure cl(is_alive);
1743   clean_extra_data(&cl);
1744   verify_extra_data_clean(&cl);
1745 }
1746 
1747 void MethodData::clean_weak_method_links() {
1748   ResourceMark rm;
1749   for (ProfileData* data = first_data();
1750        is_valid(data);
1751        data = next_data(data)) {
1752     data->clean_weak_method_links();
1753   }
1754 
1755   CleanExtraDataMethodClosure cl;
1756   clean_extra_data(&cl);
1757   verify_extra_data_clean(&cl);
1758 }
1759 
1760 #ifdef ASSERT
1761 void MethodData::verify_clean_weak_method_links() {
1762   ResourceMark rm;
1763   for (ProfileData* data = first_data();
1764        is_valid(data);
1765        data = next_data(data)) {
1766     data->verify_clean_weak_method_links();
1767   }
1768 
1769   CleanExtraDataMethodClosure cl;
1770   verify_extra_data_clean(&cl);
1771 }
1772 #endif // ASSERT
< prev index next >