refactor
do not expose internal offset
This commit is contained in:
@@ -30,8 +30,9 @@ func (mc *MemChunk) FreeResource() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (mc *MemChunk) WriteDataAt(src []byte, offset int64) (n int) {
|
func (mc *MemChunk) WriteDataAt(src []byte, offset int64) (n int) {
|
||||||
n = copy(mc.buf[offset:], src)
|
innerOffset := offset % mc.chunkSize
|
||||||
mc.usage.MarkWritten(offset, offset+int64(n))
|
n = copy(mc.buf[innerOffset:], src)
|
||||||
|
mc.usage.MarkWritten(innerOffset, innerOffset+int64(n))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -57,14 +57,13 @@ func (cw *UploadPipeline) SaveDataAt(p []byte, off int64) (n int) {
|
|||||||
defer cw.writableChunksLock.Unlock()
|
defer cw.writableChunksLock.Unlock()
|
||||||
|
|
||||||
logicChunkIndex := LogicChunkIndex(off / cw.ChunkSize)
|
logicChunkIndex := LogicChunkIndex(off / cw.ChunkSize)
|
||||||
offsetRemainder := off % cw.ChunkSize
|
|
||||||
|
|
||||||
memChunk, found := cw.writableChunks[logicChunkIndex]
|
memChunk, found := cw.writableChunks[logicChunkIndex]
|
||||||
if !found {
|
if !found {
|
||||||
memChunk = NewMemChunk(logicChunkIndex, cw.ChunkSize)
|
memChunk = NewMemChunk(logicChunkIndex, cw.ChunkSize)
|
||||||
cw.writableChunks[logicChunkIndex] = memChunk
|
cw.writableChunks[logicChunkIndex] = memChunk
|
||||||
}
|
}
|
||||||
n = memChunk.WriteDataAt(p, offsetRemainder)
|
n = memChunk.WriteDataAt(p, off)
|
||||||
cw.maybeMoveToSealed(memChunk, logicChunkIndex)
|
cw.maybeMoveToSealed(memChunk, logicChunkIndex)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|||||||
Reference in New Issue
Block a user