- so_block = (struct slab_object *)ch_malloc(
- SLAP_SLAB_SOBLOCK * sizeof(struct slab_object));
- so_block[0].so_blockhead = 1;
- LDAP_LIST_INSERT_HEAD(
- &sh->sh_sopool, &so_block[0], so_link);
- for (k = 1; k < SLAP_SLAB_SOBLOCK; k++) {
- so_block[k].so_blockhead = 0;
- LDAP_LIST_INSERT_HEAD(
- &sh->sh_sopool, &so_block[k], so_link);
- }
- so_right = LDAP_LIST_FIRST(&sh->sh_sopool);
- LDAP_LIST_REMOVE(so_right, so_link);
- so_right->so_ptr = so_left->so_ptr + (1 << j);
- } else {
- so_right = LDAP_LIST_FIRST(&sh->sh_sopool);
- LDAP_LIST_REMOVE(so_right, so_link);
- so_right->so_ptr = so_left->so_ptr + (1 << j);