AllocMerge is like Merge(), but the caller must provide []byte parameters that came from Alloc(), for less buffer copying.
(keyFromAlloc, valFromAlloc []byte)
| 227 | // AllocMerge is like Merge(), but the caller must provide []byte |
| 228 | // parameters that came from Alloc(), for less buffer copying. |
| 229 | func (a *segment) AllocMerge(keyFromAlloc, valFromAlloc []byte) error { |
| 230 | bufCap := cap(a.buf) |
| 231 | |
| 232 | keyStart := bufCap - cap(keyFromAlloc) |
| 233 | |
| 234 | return a.mutateEx(OperationMerge, |
| 235 | keyStart, len(keyFromAlloc), len(valFromAlloc)) |
| 236 | } |
| 237 | |
| 238 | // ------------------------------------------------------ |
| 239 |