equal
deleted
inserted
replaced
461 template <typename OopClosureType> |
461 template <typename OopClosureType> |
462 void oopDesc::oop_iterate_backwards(OopClosureType* cl) { |
462 void oopDesc::oop_iterate_backwards(OopClosureType* cl) { |
463 OopIteratorClosureDispatch::oop_oop_iterate_backwards(cl, this, klass()); |
463 OopIteratorClosureDispatch::oop_oop_iterate_backwards(cl, this, klass()); |
464 } |
464 } |
465 |
465 |
466 int oopDesc::oop_iterate_no_header(OopClosure* blk) { |
|
467 // The NoHeaderExtendedOopClosure wraps the OopClosure and proxies all |
|
468 // the do_oop calls, but turns off all other features in OopIterateClosure. |
|
469 NoHeaderExtendedOopClosure cl(blk); |
|
470 return oop_iterate_size(&cl); |
|
471 } |
|
472 |
|
473 int oopDesc::oop_iterate_no_header(OopClosure* blk, MemRegion mr) { |
|
474 NoHeaderExtendedOopClosure cl(blk); |
|
475 return oop_iterate_size(&cl, mr); |
|
476 } |
|
477 |
|
478 bool oopDesc::is_instanceof_or_null(oop obj, Klass* klass) { |
466 bool oopDesc::is_instanceof_or_null(oop obj, Klass* klass) { |
479 return obj == NULL || obj->klass()->is_subtype_of(klass); |
467 return obj == NULL || obj->klass()->is_subtype_of(klass); |
480 } |
468 } |
481 |
469 |
482 intptr_t oopDesc::identity_hash() { |
470 intptr_t oopDesc::identity_hash() { |