464 |
464 |
465 // Iterate over all objects, calling "cl.do_object" on each. |
465 // Iterate over all objects, calling "cl.do_object" on each. |
466 // This includes objects in permanent memory. |
466 // This includes objects in permanent memory. |
467 virtual void object_iterate(ObjectClosure* cl) = 0; |
467 virtual void object_iterate(ObjectClosure* cl) = 0; |
468 |
468 |
|
469 // Similar to object_iterate() except iterates only |
|
470 // over live objects. |
|
471 virtual void safe_object_iterate(ObjectClosure* cl) = 0; |
|
472 |
469 // Behaves the same as oop_iterate, except only traverses |
473 // Behaves the same as oop_iterate, except only traverses |
470 // interior pointers contained in permanent memory. If there |
474 // interior pointers contained in permanent memory. If there |
471 // is no permanent memory, does nothing. |
475 // is no permanent memory, does nothing. |
472 virtual void permanent_oop_iterate(OopClosure* cl) = 0; |
476 virtual void permanent_oop_iterate(OopClosure* cl) = 0; |
473 |
477 |