mirror of
https://github.com/datarhei/core.git
synced 2025-12-24 13:07:56 +08:00
Use byte array on stack for copying data, limit size hint
This commit is contained in:
14
io/fs/mem.go
14
io/fs/mem.go
@@ -411,17 +411,9 @@ func (fs *memFilesystem) Symlink(oldname, newname string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
var chunkPool = sync.Pool{
|
||||
New: func() interface{} {
|
||||
chunk := make([]byte, 128*1024)
|
||||
return &chunk
|
||||
},
|
||||
}
|
||||
|
||||
func copyToBufferFromReader(buf *bytes.Buffer, r io.Reader, _ int) (int64, error) {
|
||||
chunkPtr := chunkPool.Get().(*[]byte)
|
||||
chunk := *chunkPtr
|
||||
defer chunkPool.Put(chunkPtr)
|
||||
chunkData := [128 * 1024]byte{}
|
||||
chunk := chunkData[0:]
|
||||
|
||||
size := int64(0)
|
||||
|
||||
@@ -466,7 +458,7 @@ func (fs *memFilesystem) WriteFileReader(path string, r io.Reader, sizeHint int)
|
||||
data: &bytes.Buffer{},
|
||||
}
|
||||
|
||||
if sizeHint > 0 {
|
||||
if sizeHint > 0 && sizeHint < 5*1024*1024 {
|
||||
newFile.data.Grow(sizeHint)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user