// A closure class for processing card table entries. Note that we don't // require these closure objects to be stack-allocated. class G1CardTableEntryClosure: public CHeapObj<mtGC> { public: typedef CardTable::CardValue CardValue;
// Process the card whose card table entry is "card_ptr". virtualvoid do_card_ptr(CardValue* card_ptr, uint worker_id) = 0;
// Process all the card_ptrs in node. void apply_to_buffer(BufferNode* node, size_t buffer_size, uint worker_id) { void** buffer = BufferNode::make_buffer_from_node(node); for (size_t i = node->index(); i < buffer_size; ++i) {
CardValue* card_ptr = static_cast<CardValue*>(buffer[i]);
do_card_ptr(card_ptr, worker_id);
}
}
};
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.