< prev index next >
src/share/vm/gc/cms/compactibleFreeListSpace.cpp
Print this page
*** 927,937 ****
// Ensure klass read before size.
Klass* k = oop(p)->klass_or_null_acquire();
if (k != NULL) {
assert(k->is_klass(), "Should really be klass oop.");
oop o = (oop)p;
! assert(o->is_oop(true /* ignore mark word */), "Should be an oop.");
size_t res = o->size_given_klass(k);
res = adjustObjectSize(res);
assert(res != 0, "Block size should not be 0");
return res;
--- 927,937 ----
// Ensure klass read before size.
Klass* k = oop(p)->klass_or_null_acquire();
if (k != NULL) {
assert(k->is_klass(), "Should really be klass oop.");
oop o = (oop)p;
! assert(oopDesc::is_oop(o, true /* ignore mark word */), "Should be an oop.");
size_t res = o->size_given_klass(k);
res = adjustObjectSize(res);
assert(res != 0, "Block size should not be 0");
return res;
*** 977,987 ****
// Ensure klass read before size.
Klass* k = oop(p)->klass_or_null_acquire();
if (k != NULL) {
assert(k->is_klass(), "Should really be klass oop.");
oop o = (oop)p;
! assert(o->is_oop(), "Should be an oop");
size_t res = o->size_given_klass(k);
res = adjustObjectSize(res);
assert(res != 0, "Block size should not be 0");
return res;
--- 977,987 ----
// Ensure klass read before size.
Klass* k = oop(p)->klass_or_null_acquire();
if (k != NULL) {
assert(k->is_klass(), "Should really be klass oop.");
oop o = (oop)p;
! assert(oopDesc::is_oop(o), "Should be an oop");
size_t res = o->size_given_klass(k);
res = adjustObjectSize(res);
assert(res != 0, "Block size should not be 0");
return res;
*** 1003,1013 ****
return fc->size();
} else {
// Ignore mark word because this may be a recently promoted
// object whose mark word is used to chain together grey
// objects (the last one would have a null value).
! assert(oop(p)->is_oop(true), "Should be an oop");
return adjustObjectSize(oop(p)->size());
}
}
// This implementation assumes that the property of "being an object" is
--- 1003,1013 ----
return fc->size();
} else {
// Ignore mark word because this may be a recently promoted
// object whose mark word is used to chain together grey
// objects (the last one would have a null value).
! assert(oopDesc::is_oop(oop(p), true), "Should be an oop");
return adjustObjectSize(oop(p)->size());
}
}
// This implementation assumes that the property of "being an object" is
*** 1020,1030 ****
Klass* k = oop(p)->klass_or_null_acquire();
if (k != NULL) {
// Ignore mark word because it may have been used to
// chain together promoted objects (the last one
// would have a null value).
! assert(oop(p)->is_oop(true), "Should be an oop");
return true;
} else {
return false; // Was not an object at the start of collection.
}
}
--- 1020,1030 ----
Klass* k = oop(p)->klass_or_null_acquire();
if (k != NULL) {
// Ignore mark word because it may have been used to
// chain together promoted objects (the last one
// would have a null value).
! assert(oopDesc::is_oop(oop(p), true), "Should be an oop");
return true;
} else {
return false; // Was not an object at the start of collection.
}
}
*** 1064,1074 ****
assert(_bt.block_start(p) == p, "Should be a block boundary");
if (!fc->is_free()) {
// Ignore mark word because it may have been used to
// chain together promoted objects (the last one
// would have a null value).
! assert(oop(p)->is_oop(true), "Should be an oop");
return true;
}
return false;
}
--- 1064,1074 ----
assert(_bt.block_start(p) == p, "Should be a block boundary");
if (!fc->is_free()) {
// Ignore mark word because it may have been used to
// chain together promoted objects (the last one
// would have a null value).
! assert(oopDesc::is_oop(oop(p), true), "Should be an oop");
return true;
}
return false;
}
*** 2172,2182 ****
bool was_obj = false;
bool was_live = false;
if (_sp->block_is_obj(addr)) {
was_obj = true;
oop p = oop(addr);
! guarantee(p->is_oop(), "Should be an oop");
res = _sp->adjustObjectSize(p->size());
if (_sp->obj_is_alive(addr)) {
was_live = true;
p->verify();
}
--- 2172,2182 ----
bool was_obj = false;
bool was_live = false;
if (_sp->block_is_obj(addr)) {
was_obj = true;
oop p = oop(addr);
! guarantee(oopDesc::is_oop(p), "Should be an oop");
res = _sp->adjustObjectSize(p->size());
if (_sp->obj_is_alive(addr)) {
was_live = true;
p->verify();
}
*** 2224,2234 ****
// that p be in _sp. Note that several generations (and spaces)
// are spanned by _span (CMS heap) above.
guarantee(!_sp->is_in_reserved(obj) ||
_sp->block_is_obj((HeapWord*)obj),
"Should be an object");
! guarantee(obj->is_oop(), "Should be an oop");
obj->verify();
if (_past_remark) {
// Remark has been completed, the object should be marked
_bit_map->isMarked((HeapWord*)obj);
}
--- 2224,2234 ----
// that p be in _sp. Note that several generations (and spaces)
// are spanned by _span (CMS heap) above.
guarantee(!_sp->is_in_reserved(obj) ||
_sp->block_is_obj((HeapWord*)obj),
"Should be an object");
! guarantee(oopDesc::is_oop(obj), "Should be an oop");
obj->verify();
if (_past_remark) {
// Remark has been completed, the object should be marked
_bit_map->isMarked((HeapWord*)obj);
}
*** 2241,2251 ****
}
}
}
} else if (_sp->is_in_reserved(p)) {
// the reference is from FLS, and points out of FLS
! guarantee(obj->is_oop(), "Should be an oop");
obj->verify();
}
}
template <class T> void do_oop_work(T* p) {
--- 2241,2251 ----
}
}
}
} else if (_sp->is_in_reserved(p)) {
// the reference is from FLS, and points out of FLS
! guarantee(oopDesc::is_oop(obj), "Should be an oop");
obj->verify();
}
}
template <class T> void do_oop_work(T* p) {
< prev index next >