| 389 | } |
| 390 | |
| 391 | func (seg *segment) delEntryPtr(slotId uint8, slot []entryPtr, idx int) { |
| 392 | offset := slot[idx].offset |
| 393 | var entryHdrBuf [ENTRY_HDR_SIZE]byte |
| 394 | seg.rb.ReadAt(entryHdrBuf[:], offset) |
| 395 | entryHdr := (*entryHdr)(unsafe.Pointer(&entryHdrBuf[0])) |
| 396 | entryHdr.deleted = true |
| 397 | seg.rb.WriteAt(entryHdrBuf[:], offset) |
| 398 | copy(slot[idx:], slot[idx+1:]) |
| 399 | seg.slotLens[slotId]-- |
| 400 | atomic.AddInt64(&seg.entryCount, -1) |
| 401 | } |
| 402 | |
| 403 | func entryPtrIdx(slot []entryPtr, hash16 uint16) (idx int) { |
| 404 | high := len(slot) |