457 // Give each generation an opportunity to do clean up for any
458 // contributed scratch.
459 virtual void reset_scratch() {}
460
461 // When an older generation has been collected, and perhaps resized,
462 // this method will be invoked on all younger generations (from older to
463 // younger), allowing them to resize themselves as appropriate.
464 virtual void compute_new_size() = 0;
465
466 // Printing
467 virtual const char* name() const = 0;
468 virtual const char* short_name() const = 0;
469
470 // Reference Processing accessor
471 ReferenceProcessor* const ref_processor() { return _ref_processor; }
472
473 // Iteration.
474
475 // Iterate over all the ref-containing fields of all objects in the
476 // generation, calling "cl.do_oop" on each.
477 virtual void oop_iterate(ExtendedOopClosure* cl);
478
479 // Iterate over all objects in the generation, calling "cl.do_object" on
480 // each.
481 virtual void object_iterate(ObjectClosure* cl);
482
483 // Iterate over all safe objects in the generation, calling "cl.do_object" on
484 // each. An object is safe if its references point to other objects in
485 // the heap. This defaults to object_iterate() unless overridden.
486 virtual void safe_object_iterate(ObjectClosure* cl);
487
488 // Apply "cl->do_oop" to (the address of) all and only all the ref fields
489 // in the current generation that contain pointers to objects in younger
490 // generations. Objects allocated since the last "save_marks" call are
491 // excluded.
492 virtual void younger_refs_iterate(OopsInGenClosure* cl, uint n_threads) = 0;
493
494 // Inform a generation that it longer contains references to objects
495 // in any younger generation. [e.g. Because younger gens are empty,
496 // clear the card table.]
497 virtual void clear_remembered_set() { }
|
457 // Give each generation an opportunity to do clean up for any
458 // contributed scratch.
459 virtual void reset_scratch() {}
460
461 // When an older generation has been collected, and perhaps resized,
462 // this method will be invoked on all younger generations (from older to
463 // younger), allowing them to resize themselves as appropriate.
464 virtual void compute_new_size() = 0;
465
466 // Printing
467 virtual const char* name() const = 0;
468 virtual const char* short_name() const = 0;
469
470 // Reference Processing accessor
471 ReferenceProcessor* const ref_processor() { return _ref_processor; }
472
473 // Iteration.
474
475 // Iterate over all the ref-containing fields of all objects in the
476 // generation, calling "cl.do_oop" on each.
477 virtual void oop_iterate(OopIterateClosure* cl);
478
479 // Iterate over all objects in the generation, calling "cl.do_object" on
480 // each.
481 virtual void object_iterate(ObjectClosure* cl);
482
483 // Iterate over all safe objects in the generation, calling "cl.do_object" on
484 // each. An object is safe if its references point to other objects in
485 // the heap. This defaults to object_iterate() unless overridden.
486 virtual void safe_object_iterate(ObjectClosure* cl);
487
488 // Apply "cl->do_oop" to (the address of) all and only all the ref fields
489 // in the current generation that contain pointers to objects in younger
490 // generations. Objects allocated since the last "save_marks" call are
491 // excluded.
492 virtual void younger_refs_iterate(OopsInGenClosure* cl, uint n_threads) = 0;
493
494 // Inform a generation that it longer contains references to objects
495 // in any younger generation. [e.g. Because younger gens are empty,
496 // clear the card table.]
497 virtual void clear_remembered_set() { }
|