*/
STATIC bottom_index * GC_all_bottom_indices = 0;
- /* Pointer to first (lowest addr) */
- /* bottom_index. */
+ /* Pointer to the first (lowest address) */
+ /* bottom_index. Assumes the lock is held. */
STATIC bottom_index * GC_all_bottom_indices_end = 0;
- /* Pointer to last (highest addr) */
- /* bottom_index. */
+ /* Pointer to the last (highest address) */
+ /* bottom_index. Assumes the lock is held. */
/* Non-macro version of header location routine */
GC_INNER hdr * GC_find_header(ptr_t h)
bottom_index *pi; /* old_p */
word i;
+ GC_ASSERT(I_HOLD_LOCK());
# ifdef HASH_TL
i = TL_HASH(hi);
signed_word j;
bottom_index * index_p;
+ GC_ASSERT(I_HOLD_LOCK());
for (index_p = GC_all_bottom_indices; index_p != 0;
index_p = index_p -> asc_link) {
for (j = BOTTOM_SZ-1; j >= 0;) {
REGISTER bottom_index * bi;
REGISTER word j = ((word)h >> LOG_HBLKSIZE) & (BOTTOM_SZ-1);
+ GC_ASSERT(I_HOLD_LOCK());
GET_BI(h, bi);
if (bi == GC_all_nils) {
REGISTER word hi = (word)h >> (LOG_BOTTOM_SZ + LOG_HBLKSIZE);
bottom_index * bi;
signed_word j = ((word)h >> LOG_HBLKSIZE) & (BOTTOM_SZ-1);
+ GC_ASSERT(I_HOLD_LOCK());
GET_BI(h, bi);
if (bi == GC_all_nils) {
word hi = (word)h >> (LOG_BOTTOM_SZ + LOG_HBLKSIZE);